linux进程状态d和z处理

linux进程状态d和z处理

ID:24056957

大小:25.00 KB

页数:3页

时间:2018-11-12

linux进程状态d和z处理_第1页
linux进程状态d和z处理_第2页
linux进程状态d和z处理_第3页
资源描述:

《linux进程状态d和z处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、linux进程状态D和Z的处理linux进程状态D和Z的处理linux进程状态D和Z的处理原始文章:http://blog.csdn.net/eroswang/article/details/1774298#长期生活在Linux环境里,渐渐地就有一种环保意识油然而生。比如,我们会在登录提示里写上“悟空,我跟你说过叫你不要乱扔东西,乱扔东西是不对的。哎呀我话没说完你怎么把棍子扔掉了?月光宝盒是宝物,乱扔它会污染环境,要是砸到小朋友怎么办?就算砸不到小朋友,砸到了花花草草也不好嘛...”;在用户缺省目录里放一个题为“自觉保护环境请勿堆放垃圾”的空文件,并用chattr+i设为不可

2、修改;看到垃圾文件就立即扫入/tmp目录,然后发广播通知垃圾制造者自己去/tmp认领,且警告其下不为例...我们深知,系统环境的整洁有利于系统管理员保持良好的心情、清晰的思路和稳定的工作状态。  有一类垃圾却并非这么容易打扫,那就是我们常见的状态为D(Uninterruptiblesleep),以及状态为Z(Zombie)的垃圾进程。这些垃圾进程要么是求而不得,像怨妇一般等待资源(D),要么是僵而不死,像冤魂一样等待超度(Z),它们在CPUrun_queue里滞留不去,把LoadAverage弄的老高老高,没看过我前一篇blog的国际友人还以为这儿民怨沸腾又出了什么大事呢。怎

3、么办?开枪!kill-9!看你们走是不走。但这两种垃圾进程偏偏是刀枪不入的,不管换哪种枪法都杀不掉它们。无奈,只好reboot,像剿灭禽流感那样不分青红皂白地一律扑杀!  悟空,我们所运维的可是24*7全天候对外部客户服务的系统,怎么能动不动就reboot?我们的考核指标可是4个9(99.99%,全年计划外当机时间不得超过52分钟34秒),又不是4个8,你稍微遇到点事就reboot,还要不要可用性了?再说,现在社会都开始奔和谐去了,我们对于D和Z这两种垃圾进程,也该尽可能采取慈悲手段,能解决其困难的,就创造条件,解决其实际困难,能消除其冤结的,就诵经烧纸,消除其前世冤结,具体

4、问题应具体分析具体解决,滥杀无辜只会导致冤冤相报因果循环...$^#$%#%^@#  贫僧还是回来说正题。怨妇D,往往是由于I/O资源得不到满足,而引发等待,在内核源码fs/proc/array.c里,其文字定义为“"D(disksleep)",/*2*/”(由此可知D原是Disk的打头字母),对应着include/linux/sched.h里的“#defineTASK_UNINTERRUPTIBLE2”。举个例子,当NFS服务端关闭之时,若未事先umount相关目录,在NFS客户端执行df就会挂住整个登录会话,按Ctrl+C、Ctrl+Z都无济于事。断开

5、连接再登录,执行psaxf则看到刚才的df进程状态位已变成了D,kill-9无法杀灭。正确的处理方式,是马上恢复NFS服务端,再度提供服务,刚才挂起的df进程发现了其苦苦等待的资源,便完成任务,自动消亡。若NFS服务端无法恢复服务,在reboot之前也应将/etc/mtab里的相关NFSmount项删除,以免reboot过程例行调用netfsstop时再次发生等待资源,导致系统重启过程挂起。  冤魂Z之所以杀不死,是因为它已经死了,否则怎么叫Zombie(僵尸)呢?冤魂不散,自然是生前有结未解之故。在UNIX/Linux中,每个进程都有一个父进程,进程号叫PID(Proces

6、sID),相应地,父进程号就叫PPID(ParentPID)。当进程死亡时,它会自动关闭已打开的文件,舍弃已占用的内存、交换空间等等系统资源,然后向其父进程返回一个退出状态值,报告死讯。如果程序有bug,就会在这最后一步出问题。儿子说我死了,老子却没听见,没有及时收棺入殓,儿子便成了僵尸。在UNIX/Linux中消灭僵尸的手段比较残忍,执行psaxjf找出僵尸进程的父进程号(PPID,第一列),先杀其父,然后再由进程天子init(其PID为1,PPID为0)来一起收拾父子僵尸,超度亡魂,往生极乐。注意,子进程变成僵尸只是碍眼而已,并不碍事,如果僵尸的父进程当前有要务在身,则千

7、万不可贸然杀之。关于ZOMBIE进程:这些进程已经死亡,但没有释放系统资源,包括内存和一些一些系统表等,如果这样的进程很多,会引发系统问题。用ps-el看出的进程状态如果是Z,就是僵尸进程。ps-ef

8、grepdefunc可以找出僵尸进程.有些ZOMBIE进程时用kill-9也不能杀死,而且消耗了很多系统资源不能释放,如果系统在shutdown时发出信息:someprocesswouldn’tdie.这就意味这有些进程不能被reboot发出的kill–9杀掉,这些很可能就是僵尸进程。可以用ps的–l选项

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。