linux进程僵停状态,Linux性能优化--系统存在大量僵尸进程 和 不可中断状态怎么办(上)...

iowait升高时,很可能因为得不到硬件响应,长时间处于不可中断状态,使用ps或top看,它们会处在D状态,即不可中断状态(Uninterruptible Sleep)。

使用top查看信息,会出现S一列,这一列就表示进程状态。进程状态有以下几种:

R:running或runnable的缩写,表示进程在CPU就绪队列中或正在执行。

D:disk sleep,即不可中断睡眠(Uninterruptible Sleep),一般表示进程正在和硬件交互,且不允许被打断。

Z:zombie的缩写,表示僵尸进程,也就是进程已经结束了,但父进程没有回收它的资源。

S:是Interruptible Sleep的缩写,可中断状态睡眠,表示进程因等待某个事件而被系统挂起。当进程等待的某个事件发生时,状态会变为R。

I:idle缩写,表示空闲状态,用在不可中断睡眠的内核线程上。硬件交互导致的不可中断进程用 D 表示,但对某些内核线程来说,它们有可能实际上并没有任何负载,用 Idle 正是为了区分这种情况。要注意,D 状态的进程会导致平均负载升高, I 状态的进程却不会。

T或t:也就是 Stopped 或 Traced 的缩写,表示进程处于暂停或者跟踪状态。

X:dead的缩写,表示进程消亡,所以不会再top中看到它。

不可中断状态就是为了保证进程数据和硬件数据的一致,正常情况下,不中断线程都很短,一般可以忽略。如果硬件损坏导致不可中断很长,就要注意了。

僵尸进程是很多系统会遇见的。正常情况下,当一个进程创建了子进程后,它应该通过系统调用wait()或waitpid()等待子进程结束,回收子进程资源。而子进程结束时,会向父进程发送信号,父进程根据信号来异步回收资源。

如果因为一些原因,父进程没来得及回收子进程资源,这些子进程就变成了僵尸进程。一旦僵尸进程过多,导致PID耗尽,新进程将不能创建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值