linux基础

Linux进程管理(下)-day24

2020-04-07  本文已影响0人  Linux运维

管理进程状态、管理后台进程、进程的优先级、系统平均负载

一、管理进程状态

如果我们想要结束一个进程,就需要用到命令 kill(主要)、pkill、killall

1.结束进程我们需要用到信号(以怎样形式结束)

kill -l 查看系统所支持的信号



常用的信号有三个
1 ------ SIGHUP ----- 通常用来重新加载配置文件 (主进程不会重新启动,子进程会结束但新的子进程会重新启动)
9 ------ SIGKILL ----- 强制杀死进程
15 ---- SIGTERM ---- 终止进程(默认信号)

2.命令的使用

[root@10 ~]# systemctl start httpd
[root@10 ~]# ps -ef |grep httpd
root       9343      1  5 16:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     9344   9343  0 16:16 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     9345   9343  0 16:16 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     9346   9343  0 16:16 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     9347   9343  0 16:16 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache     9348   9343  0 16:16 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root       9350   7738  0 16:16 pts/0    00:00:00 grep --color=auto httpd
# kill 命令 ,默认信号是 15
[root@10 ~]# kill 9344        # kill 后面跟进程ID
[root@10 ~]# kill -9 9344      #强制杀死进程
[root@10 ~]# kill  -15 9344    #重新加载(先杀后启)

# pkill、killall 命令,命令后面跟进程名,默认信号也是 15
[root@10 ~]# pkill httpd
[root@10 ~]# killall httpd

#可以使用 pkill 结束从远程登录本机的用户的所有进程
[root@10 ~]# pkill -9 -t pts/0
二、管理后台进程

通常我们的进程都会在前台运行,当我们关闭终端,进程也会随之停止;但我们把进程放在后台运行,即使我们关闭了终端,进程也不会停止,这就是后台的功能。

命令:screen

#1.安装
[root@10 ~]# yum install screen -y
#2.开启一个screen窗口,指定名称
[root@10 ~]# screen -S one

 #3.
退出窗口,但不会停止进程  ctrl+a+b
退出窗口,并停止进程  exit

#4.查看当前正在运行的 screen
[root@10 ~]# screen -list
There is a screen on:
          9360.one      (Detached)
1 Socket in /var/run/screen/S-root.

#5.进入正在运行的 screen
[root@10 ~]# screen -r one      # one == 9360
三、进程的优先级

优先级就是优先享受资源,例如各种会员,军人优先,等等。

在启动进程时,为不同的进程使用不同的调度策略。

我们用 nice(NI) 来表示
nice 值越高,优先级越低,例如:+20
nice 值越低,优先级越高,例如:-20

1.我们可以用 top 和 ps 来查看进程的优先级

①使用 top 可以查看 nice(NI)优先级。NI :实际nice级别,默认为0;PR:显示nice值,NI+20

②使用ps查看进程优先级(用到过滤)

[root@10 ~]# ps axo pid,command,nice |grep sshd
7501 /usr/sbin/sshd -D             0
7734 sshd: root@pts/0              0
8555 sshd: root@pts/1              0
9424 grep --color=auto sshd        0

2.nice 指定程序的优先级

#在一个窗口中执行
[root@10 ~]# nice -n -20 vim file.txt

#在另一个窗口中查看其优先级
[root@10 ~]# ps aux |grep vim
root       9456  2.4  0.2 149748  5484 pts/0    S<+  18:01   0:00 vim file.txt
root       9458  0.0  0.0 112724   980 pts/1    S+   18:01   0:00 grep --color=auto vim
[root@10 ~]# ps axo pid,command,nice |grep 9456
  9456 vim file.txt                -20
  9460 grep --color=auto 9456        0

3.renice 命令修改一个正在运行的进程优先级

语法格式 renice -n 优先级数字 进程pid

#1.查看sshd进程优先级
[root@10 ~]# ps axo pid,command,nice |grep sshd
7501 /usr/sbin/sshd -D             0
7734 sshd: root@pts/0              0
8555 sshd: root@pts/1              0
9470 grep --color=auto sshd        0

#2.对该进程设定优先级
[root@10 ~]# renice -n -20 7501

#3.重新登录终端,子进程会继承父进程优先级
四、系统平均负载

1.什么是平均负载

平均负载是指单位时间内,系统处于可运行状态(R)和不可中断状态(D)的平均进程数,也就是平均活跃进程数与CPU使用率并没有直接关系

2.平均负载多少时合理
最理想的状态是每个CPU上都刚好运行这一个进程,这样每个CPU都得到了充分利用。
在评判平均负载时,首先要知道系统有几个CPU。

3.平均负载的三个值,怎么看?

①三个值要结合起来看,相差不大,说明系统负载很平稳

②把系统的平均负载监控起来,然后根据更多的历史数据,判断负载变化的趋势

4.平均负载与CPU使用率的关系

平均负载,不仅包括正在使用的CPU的进程,还包括等待CPU和等待I/O的进程。

CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。

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

解决过程:
1.uptime看看负载的情况 ( 超过了 cpu的核心 )
2.top看是cpu的使用率高 ;还是 wa等待高 ; 还是内核态占用cpu高 、软中断高 、nice优先级进程占用cpu、
3.top看是哪个进程
4.追踪这个进程的情况。
5.看看是否存在异常日志。

上一篇 下一篇

猜你喜欢

热点阅读