哔前言一直践行费曼学习法了解系统知识原理掌握性能分析工具多练习,多思考,多提问仅记录个人学习记录,欢迎指正1.进程状态R[Running/Runnable]:进程runningorwaitingtorunD[DiskSleep]:不可中断状态睡眠,一般表示进程正在与硬件交互,交互过程中不允许被其他进程打断或中断Z[Zombie]僵尸进程,也就是进程结束了,父进程还没有回收它的资源。S[InterruptibleSleep]可中断状态睡眠,表示进程因为等待事件而被系统挂起。当进程等待事件发生时,会被唤醒,进入R状态I[Idle]空闲状态,在不间断睡眠的内核线程上使用。D状态会导致loadaverage增加,I状态的过程不会。T/t[Stopped/Traced]进程处于挂起或traced状态[Trackingstate--特殊挂起状态]X[Dead]进程已经死亡,top/ps命令无法观察到死亡进程。交互时正常情况下:不可中断状态会在很短的时间内结束。这时,短期不可中断状态进程,我们一般可以忽略系统/硬件故障:进程会保持长期不可中断状态。需要注意是否出现系统I/O性能问题3.僵尸进程一般情况下:父进程创建子进程,然后通过系统调用等待子进程结束,回收子进程资源,并在子进程结束时,向父进程发送sigChld信号,父进程注册sigChld信号处理函数,异步回收资源。异常情况下:父进程不处理子进程,或者子进程执行速度比父进程快,很容易导致子进程成为僵尸进程。4.总结4.1.大量不间断进程和僵尸进程处理方式:iowait过高,导致平均负载增加,负载达到系统cpu的僵尸进程数量不断增加查看发现,当iowait上升时,磁盘读请求上升定位磁盘读进程,使用top命令查看不间断状态下进程的PID,查看对应进程的磁盘读写状态,使用pidstat-d查看I/O用法,发现处于不间断状态的进程都没有在进行磁盘读写。继续使用pidstat命令查看所有进程的I/O状态。可以定位到磁盘读写进程。使用strace查看进程的系统调用strace-p
