首页 > Linux操作系统 > Linux操作系统 > 对一个僵死进程的跟踪
最近对主机的性能做了一些测试,有一些应用因为强行中断退出,或者一些什么别的原因,系统出现了一些僵死进程,虽然不会耗费多大的资源,但是心里就是觉得不爽(:
尝试跟踪了一下其中一个僵死进程:
环境aix 5.2
node a>kdb
The specified kernel file is a 64-bit kernel
Preserving 1044294 bytes of symbol table
First symbol __mulh
START END
0000000000003500 0000000002483068 _system_configuration+000020
F00000002FF3A600 F00000002FFD0908 __ublock+000000
000000002FF22FF4 000000002FF22FF8 environ+000000
000000002FF22FF8 000000002FF22FFC errno+000000
F100008780000000 F100008790000000 pvproc+000000
F100008790000000 F100008798000000 pvthread+000000
F100000040000000 F1000000491E89B0 vmmdseg+000000
F200010010000000 F200016014800000 vmmswpft+000000
F100000BE0000000 F1000013E0000000 vmmswhat+000000
F100000050000000 F100000060000000 ptaseg+000000
F1000000A0000000 F1000000E0000000 ameseg+000000
F100009E10000000 F100009E20000000 KERN_heap+000000
F1000089C0000000 F1000089D0000000 MBUF_heap+000000
F100009C00000000 F100009C10000000 lkwseg+000000
PFT:
PVT:
id....................0008
raddr.....0000000002400000 eaddr.....F200010040000000
size..............03800000 align.............00400000
valid..1 ros....0 holes..0 fixlmb.1 seg....1 wimg...2
(0)> dcal 3518496
Value decimal: 3518496 Value hexa: 0035B020
(0)> tpid 0035B020
SLOT NAME STATE TID PRI RQ CPUID CL WCHAN
pvthread+040500 1029 db2bp SLEEP 405049 03C 4 0 F100009E582789C0
(0)> f 1029
pvthread+040500 STACK:
[0003BB9C]e_block_thread+0002EC ()
[0003C43C]e_sleep_thread+000064 (??, ??, ??)
[0068131C]atomic+0005E0 (??, ??, ??, ??, ??)
[0067FEF8]__semop+0003F0 (002C0022002C0022, 0FFFFFFFFFFFDC78,
0000000000000001)
[0000379C]sc_msr_2_point+000028 ()
(0)> dcal 3379254
Value decimal: 3379254 Value hexa: 00339036
(0)> tpid 00339036
SLOT NAME STATE TID PRI RQ CPUID CL WCHAN
pvthread+040C00 1036 db2sysc SLEEP 40C005 03C 6 0
(0)> f 1036
pvthread+040C00 STACK:
[0003CA00]et_wait+0002F4 (0900000001426CFC, A00000000000D0B2,
FFFFFFFFFFFFFFFF [??])
[0008AEAC]thread_wait+000200 (??)
[0000379C]sc_msr_2_point+000028 ()
[kdb_get_virtual_memory] no real storage @ FFFFFFFFFFF2550
(0)> dcal 1622046
Value decimal: 1622046 Value hexa: 0018C01E
(0)> tpid 0018C01E
SLOT NAME STATE TID PRI RQ CPUID CL WCHAN
pvthread+023400 564 db2sysc SLEEP 23406F 03C 0 0
(0)> f 564
pvthread+023400 STACK:
[0003CA00]et_wait+0002F4 (0900000001426CFC, A00000000000D0B2,
FFFFFFFFFFFFFFFF [??])
[0008AEAC]thread_wait+000200 (??)
[0000379C]sc_msr_2_point+000028 ()
[kdb_get_virtual_memory] no real storage @ FFFFFFFFFFFDE10
(0)> dcal 1999060
Value decimal: 1999060 Value hexa: 001E80D4
(0)> tpid 001E80D4
SLOT NAME STATE TID PRI RQ CPUID CL WCHAN
pvthread+028C00 652 db2sysc SLEEP 28C01F 03C 9 0 ulist_event+0006E0
(0)> f 652
pvthread+028C00 STACK:
[0003BB9C]e_block_thread+0002EC ()
[0008AB94]thread_waitlock+000314 (??)
[0000379C]sc_msr_2_point+000028 ()
[kdb_get_virtual_memory] no real storage @ FFFFFFFFFFFC010
(0)> dcal 3006650
Value decimal: 3006650 Value hexa: 002DE0BA
(0)> tpid 002DE0BA
SLOT NAME STATE TID PRI RQ CPUID CL WCHAN
pvthread+038300 899 db2sysc SLEEP 383007 03C 7 0
(0)> f 899
pvthread+038300 STACK:
[0003CA00]et_wait+0002F4 (0900000001426CFC, A00000000000D0B2,
FFFFFFFFFFFFFFFF [??])
[0008AEAC]thread_wait+000200 (??)
[0000379C]sc_msr_2_point+000028 ()
[900000001426CF8]sqloWaitEDUWaitPost+0003EC ([kdb_get_virtual_memory] no real storage @ FFFFFFFFFFFE090
(0)> dcal 2687006
Value decimal: 2687006 Value hexa: 0029001E
(0)> tpid 0029001E
SLOT NAME STATE TID PRI RQ CPUID CL WCHAN
pvthread+033500 821 db2sysc SLEEP 33506B 03C 1 0
(0)> f 821
pvthread+033500 STACK:
[0003CA00]et_wait+0002F4 (0900000001426CFC, A00000000000D0B2,
FFFFFFFFFFFFFFFF [??])
[0008AEAC]thread_wait+000200 (??)
[0000379C]sc_msr_2_point+000028 ()
[900000001426CF8]sqloWaitEDUWaitPost+0003EC ([kdb_get_virtual_memory] no real storage @ FFFFFFFFFFFE090
估计是做load的时候把所有内存都耗尽了....
看来只好reboot主机了,希望能找到彻底杀死僵死进程的办法.....
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4096/viewspace-52468/,如需转载,请注明出处,否则将追究法律责任。