CPU不可中断和僵尸进程

吃可爱长大的小学妹 提交于 2020-02-18 05:44:43

top时S列为进程的状态:

R:运行状态

i:空闲状态

D:不可中断状态,进程正在和硬件交互,为了保护硬件,处于不可中断状态。

Z:僵尸状态,实际上进程已经结束,但父进程没有回收资源。

S:睡眠状态,可中断。

T:暂停状态,进程收到SIN_STOP信号暂停。调试加断点的时候,进程就处于这种状态。

X:进程已经挂掉。

大量不可中断状态,系统或硬件出现故障,可能会出现,检查IO问题。

僵尸状态:

1、父进程创建子进程后,没有调用wait等待,

2、子进程结束会给父进程发送sig_children,父进程没有接受此sig_children处理。

3、或者子进程结束太快,父进程没得及做以上2步操作。

当父进程结束,僵尸子进程会被init回收。

当父进程长期不结束,僵尸子进程也会长期存在。

dstat 查看系统的IO情况。

 

 

信号中断(软中断)

本质上是一种异步处理机制。

中断被分成上下两部分处理。

上部分:硬中断,直接处理硬件情况,反应很快。

下部分:软中断,为内核线程,反应相对不如上中断快。

每个CPU都有1个软中断内核线程,名字为ksoftirqd/0 。

硬中断一般对应各种IO问题。

软中断发生频率过高,内核线程会因为CPU使用率过高,导致软中断处理不及时,造成各种问题,像网络延时,调度缓慢等性能问题。

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!