进程管理2

管理进程状态

kill

使用格式:
kill [信号] 进程id
常用的kill信号:
-1 :重新加载配置文件
-9 :强制杀死进程(谨慎使用)
-15 :终止进程(默认)

[root@oldboy ~]# kill 9192
# 终止进程id为9192的进程
[root@oldboy ~]# kill -9 9192
# 强制杀死9192进程
[root@oldboy ~]# kill -1 9192
# 重新加载9192进程的配置文件

pkill

使用格式:
pkill 服务名

[root@oldboy ~]# pkill httpd
# 杀死httpd进程
[root@oldboy ~]# pkill -9 -t pts/1
# 踢掉某个bash窗口

killall

使用格式:
killall 服务名

[root@oldboy ~]# pkill httpd
# 杀死httpd进程

管理进程状态

我们可以在命令后面加上&来让该命令转到后台运行,也可以使用screen来让命令在后台被运行。

screen

管理后台工具。
-list : 查看后台正在运行的命令列表
-r:进入后台正在运行的某个命令
-S:指定screen窗口名称
进入screen后如果想要回到bash窗口但不终止screen中的任务的话,需要使用ctrl+a+d快捷键实现,如果想终止screen任务,则需要进入对应的screen窗口,然后输入exit即可。

进程优先级

优先级指的是优先享受资源,优先级的存在主要是解决重要的进程无法可能无法得到更快的执行的问题而产生。系统中的优先级用nice值表示,值越高,表示优先级越低,值最高为+19,反之,值越低,表示优先级越高,值最低为-20。一般情况下我们的优先级是0。
修改优先级的方法:
我们可以使用nice命令来指定某个程序的优先级。
例如:

[root@oldboy ~]# nice -n -20 vim
# 调整vim进程的优先级为-20

我们也可以使用renice调整正在运行的进程的优先级。

[root@oldboy ~]# renice -n 进程优先级 进程pid

有关进程优先级出现的故障之一就是系统假死,系统假死就是指我们能ping通服务器但是不能使用ssh去连接服务器的故障,这种故障就是因为ssh服务的优先级过低,得不到系统调度而产生的。防止这种故障最简单的做法就是修改ssh的优先级,当ssh的优先级较高之后,就不会发生这种问题。

平均负载

平均负载就是指单位时间内,系统处于可运行状态R 和 不可中断状态D的平均进程数,也就是平均活跃进程数。以2核CPU为例,最合适的平均负载值为2,如果为1说明CPU比较空闲,如果为4,则说明有一半的进程暂时无法被调度。
我们都知道我们使用top去查看进程信息时,里面的平均负载值有3个,分别是1分钟、5分钟、15分钟的平均负载值,这三项需要组合起来观察才能体现平均负载的意义。
在实际生产环境中,在平均负载值高于CPU数量的70%时,我们就需要分析并排查负载高的原因了,一旦负载过高,有可能会导致进程相应变慢,进而影响服务的正常功能。
平均负载与CPU使用率相比,它会多一个等待I/O的进程,因此平均负载与CPU使用率并不完全相同。
在排查系统故障时,常用步骤为:

  1. uptime查看负载情况是否超过了cpu的核心
  2. 如果超过,则进一步去查看具体原因
  3. 进一步查看是哪一个进程引起的故障
  4. 追踪这个进程的情况
  5. 查看是否存在异常的日志
发布了39 篇原创文章 · 获赞 4 · 访问量 1191

猜你喜欢

转载自blog.csdn.net/zwj1834787/article/details/105380535