2019-08-22

day22-进程续

7、进程管理kill、 killall、 pkill

killPID 正常停止一个程序
kill -1 PID 平滑重载配置文件
kill -9 PID 强行杀死进程(对于mysql这类有状态的慎用)
pkill Name 批量干掉程序
killall Name 批量干掉程序
Linux支持信号很多,最长用的3个信号


1566464347433.png

1.使用kill命令杀死指定PID的进程

1.给vsftpd 进程发送信号1,15
[root@wzz ~]# ps aux | grep vsftpd
root       6923  0.0  0.0  53176   576 ?        Ss   10:50   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       7167  0.0  0.0 112712   976 pts/0    S+   17:02   0:00 grep --color=auto vsftpd
2.发送重载信号,例如vsftpd的配置文件发生改变,重载。
[root@wzz ~]# kill -1 7160
[root@wzz ~]# ps aux | grep vsftpd
root       6923  0.0  0.0  53176   576 ?        Ss   10:50   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       7170  0.0  0.0 112712   976 pts/0    S+   17:04   0:00 grep --color=auto vsftpd
3.发送停止信号,停止vsftpd服务  systemctl stop vsftpd
[root@wzz ~]# kill 6923
[root@wzz ~]# ps aux | grep vsftpd
root       7179  0.0  0.0 112708   972 pts/0    S+   17:06   0:00 grep --color=auto vsftpd
4.强行停止
[root@wzz ~]# kill -9 7190

2.Linux系统中的killall 、pkill命令用于杀死指定名字的进程

1.通过服务名称杀死进程
[root@wzz ~]# killall vsftpd
2.用pkill踢出远程登录本机用户
[root@wzz ~]# pkill -9 -t pts/2

8、后台进程管理

1.什么是后台进程

进程都会在终端前台运行。一旦关闭终端,进程也会随着结束,那么此时就会希望进程能在后台运行,将前台运行的进程放入后台运行,这样即使关闭了终端也不影响进程的正常运行。

2.为什么要将进程放入后台运行呢

由于网络的问题需要传输很久,如果在传输的过程中出现网络抖动或者不小心关闭了终端会导致传输失败,如果能将传输的进程放入后台,就能解决此类问题了。

3.使用screen就可以将进程放入后台

1.安装
[root@wzz ~]# yum install screen -y[root@wzz ~]# yum install screen -y
2.开启一个screen窗口,指定名称
[root@wzz ~]# screen -S xz
3.在screen窗口中执行任务即可
wget https://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso
4.挂起后台  注意:使用exit,才是关闭screen窗口
ctrl +a +d
5.查看进程screen有哪些
[root@wzz ~]# screen -list
There is a screen on:
    6949.xz (Detached)
1 Socket in /var/run/screen/S-root.
6.进入正在运行的screen
[root@wzz ~]# screen -r xz

9、进程的优先级、nice、renice 、服务器假死

1.什么是优先级

优先级指的是先处理高级的系统进程

2.为什么要有系统优先级

系统优先级是一种约定,优先级高的先做,优先级低的后做。

3.系统中如何个进程配置优先级

nice值越高:表示优先级越低,如+19,该进程容易将cpu使用量让给其他进程
nice值越低:表示优先级越高,如-20,该进程更不会让出cpu
NI =0 PR=20
NI =-20 PR=0
NI = 10 PR=30
NI = 19 PR =39
1)使用top或sp 命令查看进程的优先级

1.使用top查看nice优先级。NI:实际nice级别,默认是0 PR:显示nice值,-20映射到0,+19映射到39
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND  
  6228 root      20   0  226988   6320   4968 S   0.3  0.3   0:23.66 vmtoolsd
2.使用ps查看进程优先级
[root@wzz ~]# ps axo command,nice | grep ssh | grep -v grep
/usr/sbin/sshd -D             0
sshd: root@pts/0              0

2)nice指定程序的优先级。语法格式nice -n 优先级数字 进程名称

1.开启ssh并且指定程序优先级为-5
[root@wzz ~]# nice -n -5 vim &
[1] 7353
2.查看该进程的优先级情况
[root@wzz ~]# ps axo pid,command,nice | grep vim
  7353 vim                          -5

3)renice命令修改一个正在运行的进程优先级。语法格式renice -n 优先级数字进程pid

1.查看ssh进程当前的优先级状态
[root@wzz ~]# ps axo pid,command,nice | grep ssh
  6503 /usr/sbin/sshd -D             0
  7081 sshd: root@pts/0              0
  7376 grep --color=auto ssh         0
2.调试ssh主进程的优先级
[root@wzz ~]# renice -n -19 6503
6503 (process ID) old priority 0, new priority -19
3.调整之后推出终端
[root@wzz ~]# ps axo pid,command,nice | grep ssh
  6503 /usr/sbin/sshd -D           -19
  7384 sshd: root@pts/0            -19
  7409 grep --color=auto ssh       -19

10、平衡负载

1.什么是平衡负载

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数

2.可运行状态和不可中断状态是什么

1)可运行状态进程,是指正在使用CPU或者正在等待CPU的进程,也就是我们ps命令看到处于R状态的进程。
2)不可中断进程,系统中最常见的是等待硬件设备的I/O响应,也就是我们ps命令中看到的D状态的进程,不可中断状态实际是系统对进程和硬件设备的一种保护机制。

3.平均负载多少合理

最理想的状态是每个cpu上都刚好运行着同等的进程,这样每个CPU都能得到了充分利用。

4.在实际生产环境中,平均负载多高时,需要重点关注

当平均负载高于CPU数量70%的时候,就应该排查负载高的问题。

5、平衡负载与CPU使用率有什么关系

cpu密集型进程,使用大量CPU会导致平均负载升高,此时这两者是一致的
I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用不一定很高
大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高

6、平均负载提供了一个快速查看系统整体性能的手段,反映了整体的负载情况。

但只看平均负载本身,并不能直接发现,看不到瓶颈。所以平均负载高有可能是CPU密集型进程导致的;平均负载高并不一定代表CPU使用率,还有可能是I/O更繁忙了;当发现负载高的时候,你可以使用mpstat 、pidstat等工具,辅助分析负载的来源。

你可能感兴趣的:(2019-08-22)