【告警】omm用户D状态进程超过阈值的排查方法

1.什么是D状态进程?

Linux内核中定义了以下几种状态:
#define TASK_RUNNING 0
#define TASK_INTERRUPTIBLE 1
#define TASK_UNINTERRUPTIBLE 2
#define TASK_ZOMBIE 4
#define TASK_STOPPED 8
其中:
TASK_RUNNING是就绪态,进程当前只等待CPU资源。
TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE都是阻塞态,进程当前正在等待除CPU外的其他系统资源;前者可以被信号唤醒,后者不可以。
TASK_ZOMBIE是僵尸态,进程已经结束运行,但是进程控制块尚未注销。
TASK_STOPPED是挂起状态,主要用于调试目的。进程接收到SIGSTOP信号后会进入该状态,在接收到SIGCONT后又会恢复运行。
展开全部

使用top -c 查看

进程状态:S(state)
O:进程正在处理器运行,这个状态从来木见过.
S:休眠状态(sleeping)
R:等待运行(runable)R Running or runnable (on run queue) 进程处于运行或就绪状态
I:空闲状态(idle)
Z:僵尸状态(zombie)
T:跟踪状态(Traced)
B:进程正在等待更多的内存页
D:不可中断的深度睡眠,一般由IO引起,同步IO在做读或写操作时,cpu不能做其它事情,只能等待,这时进程处于这种状态,如果程序采用异步IO,这种状态应该就很少见到了

2.现网现象分析

image.png

因D状态与IO强相关,故查询即时IO发现await确实较大image.png

处于sleeping状态的进程一直在增多,机器负载过高,但实际查看cpu及内存使用率并不高。

查询D状态的进程为

image.png

此命令应该为某个监控命令,会循环调用。所以不及时处理,D进程会越来越多。

实际查看df命令确实无法成功显示。

以FI修复建议以及硬件专家建议重启机器进行规避。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/316423.html

(0)
上一篇 2025年10月29日 21:11
下一篇 2025年10月29日 21:13

相关推荐

发表回复

登录后才能评论