学习Linux运维的个人笔记:进程管理——下(二十九)

一、管理进程状态

  • 进程运行起来: (程序, 通过一推命令+参数+执行的程序=进程)
  • 当程序运行为进程后,如果希望停止进程,怎么办呢? 那么此时我们可以使用linux的kill命令对进程发送关闭信号。当然除了kill、还有killall,pkill。
  • 对于kill而言
数字编号 信号含义 信号翻译
1 SIGHUP 加载服务的配置,主进程不会重新启动,但是子进程会被干掉,重新拉起新的子进程
9 SIGKILL 强制杀死,谨慎使用。
15 SIGTERM 正常停止进程信号,如果进程还有任务在处理,那么则处理完成后,进程会自动退出。
yum -y install vsftpd
systemctl start vsftpd
ps aux|grep vsftpd
#发送重载信号,例如 vsftpd 的配置文件发生改变,希望重新加载
kill -1 9160
#发送停止信号,当然vsftpd 服务有停止的脚本 systemctl stop vsftpd
kill 9160
#发送强制停止信号,当无法停止服务时,可强制终止信号
kill -9 9160
  • Linux系统中的killall、pkill命令用于杀死指定名字的进程。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall、pkill把这两个过程合二为一,是一个很好用的命令。
#例1、通过服务名称杀掉进程
pkill nginx
killall nginx

#例2、使用pkill踢出从远程登录到本机的用户,终止pts/0上所有进程, 并且bash也结束(用户被强制退出)
pkill -9 -t pts/0

二、管理后台进程

  • 后台进程的概念:
    通常进程都会在终端前台运行,一旦关闭终端,进程也会随着结束,那么此时我们就希望进程能在后台运行,就是将在前台运行的进程放入后台运行,这样及时我们关闭了终端也不影响进程的正常运行。
  • 早期的时候大家都选择使用&符号将进程放入后台,然后在使用jobs、bg、fg等方式查看进程状态,但太麻烦了。也不直观,所以我们推荐使用screen。
#1.安装
yum install screen -y
#2.开启一个screen窗口,指定名称
screen -S study_test
#3.在screen窗口中执行任务即可

#4.平滑的退出screen,但不会终止screen中的任务。注意: 如果使用exit 才算真的关闭screen窗口
ctrl+a+d

#5.查看当前正在运行的screen有哪些
screen -list
	There is a screen on:
    	1111.study_test    (Detached)
	1 Socket in /var/run/screen/S-root

#6.进入正在运行的screen
screen -r study_test
screen -r 1111

三、进程的优先级

  • 什么优先级
    优先级指的是优先享受资源,比如排队买票时,军人优先、老人优先。等等

  • 系统中如何给进程配置优先级?
    在启动进程时,为不同的进程使用不同的调度策略。
    nice 值越高: 表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
    nice 值越低: 表示优先级越高,例如-20,该进程不倾向于让出CPU。 最高的优先级

      低							正常								高
      +20							  0								-20
    
  • nice指定程序的优先级。语法格式 nice -n 优先级数字 进程名称

#1.开启vim并且指定程序优先级为-5
nice -n -5 vim &
[1] 98417

#2.查看该进程的优先级情况
ps axo pid,command,nice |grep 98417
 98417 vim                         -5

四、系统平均负载

  • 平均负载是指单位时间内,系统处于 可运行状态R 和 不可中断状态D 的平均进程数,也就是平均活跃进程数,
    平均负载其实就是单位时间内的活跃进程数。 ( 可运行状态R + 不可中断状态D )
    平均负载要看的是三个值,不是一个。
  • 可运行状态和不可中断状态是指:
  1. 可运行状态进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们ps 命令看到处于 R 状态的进程。
  2. 不可中断进程,(你做什么事情的时候是不能打断的?) 系统中最常见的是等待硬件设备的 I/O 响应,也就是我们 ps 命令中看到的 D 状态(也称为 Disk Sleep)的进程。

例如: 当一个进程向磁盘读写数据时,为了保证数据的一致性,在得到磁盘回复前,它是不能被其他进程或者中断打断的,这个时候的进程就处于不可中断状态。如果此时的进程被打断了,就容易出现磁盘数据与进程数据不一致的问题。所以,不可中断状态实际上是系统对进程和硬件设备的一种保护机制。

场景描述
  • CPU 密集型进程:使用大量 CPU 计算会导致平均负载升高,此时这两者是一致的; ( 视频的转码 加密 计算圆周率 )
  • I/O 密集型进程:等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定很高;
  • 大量的 CPU 进程调度:会导致平均负载升高,此时的 CPU 使用率也会比较高。
一般排除进程故障的步骤
  1. uptime看看负载的情况 ( 超过了 cpu的核心 )
  2. top看是cpu的使用率高 还是 wa等待高 还是内核态占用cpu高 、软中断高 、nice优先级进程占用cpu、
  3. top看是哪个进程
  4. 追踪这个进程的情况。
  5. 看看是否存在异常日志。
发布了34 篇原创文章 · 获赞 10 · 访问量 2329

猜你喜欢

转载自blog.csdn.net/weixin_44903608/article/details/105389645