天天看点

oracle下defunct,AIX僵死(defunct)进程故障分析(Aix)

故障描述:

S80主机系统出现了大量的僵死(defunct)进程,由于这些进程不能自动终止,导致系统的进程数资源不能释放,因此,如果继续增多,到达系统设定的进程总数,用户的应用和生产将受到影响。

故障分析:

在AIX操作系统中,任何进程的结束或终止将会通报其父进程(parent

process),父进程会收集子进程的状态信息,并使子进程完全结束。如果父进程不能及时完整地收集该进程的状态信息,则即使子进程结束,系统也会产生一个相同进程号的defunct进程。由于defunct进程对应的进程实际上已经结束,因此,使用kill

–9等方法也无法清除干净。

仔细观察S80系统中的defunct进程,进程用户多为root用户,少数为ORACLE用户,但绝大部分进程的父进程号为1,这表明父进程为系统初始化(init)

进程。经查询IBM系统资料库,指明:系统起机后,如果/etc/inittab文件未被init进程完全执行完,则系统很可能产生defunct进程,因为init进程有可能在等待某些特定进程的运行而不理会其他子进程的结束,从而导致defunct进程的产生。

仔细查看系统/etc/inittab文件,发现存在如下语句:

welcome:2:wait:/usr/lib/assist/welcome.launch

该语句将导致/etc/inittab中其后的语句未能完全运行,因此,需要清除或屏蔽掉该语句。

故障解决:

删除/etc/inittab中welcome语句,并重新执行/etc/inittab,系统中的defunct进程被清除,系统进程数被释放,恢复至正常状态。

如下为操作命令:

#cp /etc/inttab /etc/inittab.bak

#rmitab welcome

#telinit q

#ps -ef|grep welcome (to find the

‘welcome’ pid#)

#kill #pid

#telinit q