服务器负载暴增排查
top状态查看
系统平均负载高,但cpu,内存,磁盘io都正常
系统平均负载
1.平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和CPU使用率并没有直接关系。
2.可运行状态的进程,是指正在使用CPU或者正在等待CPU的进程,也就是我们常用ps命令看到的,处于R状态(Running 或 Runnable)的进程
3.不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的I/O响应,也就是我们在ps命令中看到的D状态(Uninterruptible Sleep,也称为Disk Sleep)的进程
负载高的常见情况
我们常见的负载高一般有这几种情况引起
1.一个是cpu密集型,使用大量cpu会导致平均负载升高
2.另外一个就是io密集型等待I/O会导致平均负载升高,但是CPU使用率不一定很高
3.还有就是大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高
主机进程分析
1.查看当前主机上运行哪些进程,并且各个进程当前的具体状态 ps aux
2.使用ps -aux,可以看到大量的D状态的进程
3.当某个服务创建大量的进程导致系统负载飙升的时候就需要通过此指令查看
什么是D状态的进程
终止指定进程
ps aux | grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9
查看负载
排查步骤
1.先执行top 查看cpu 内存 io都是正常范围
2.查看当前主机上的所有进程
ps是简单而强大的进程查看命令,而ps -aux和ps -ef是打印出所有进程
进程状态表示
主机进程状态查看方式
1.如果要查看主机上各个进程当前的运行状态,cpu占比,内存占比.需要使用 ps -aux
2.如果需要查看主机上进程之间的父子关系 需要使用ps -ef
本文来自博客园,作者:不懂123,转载请注明原文链接:https://www.cnblogs.com/yxh168/p/16607038.html