2011-11-15 2 views
9
32537 apache 16 0 87424 15m 7324 S 2.3 0.3 0:00.52 httpd    
3302 mysql  15 0 156m 41m 4756 S 1.3 0.7 10:50.91 mysqld    
    489 apache 16 0 87016 14m 6692 S 0.7 0.2 0:00.27 httpd    
    990 apache 15 0  0 0 0 Z 0.7 0.0 0:00.12 httpd <defunct>  
    665 apache 15 0 86992 13m 5644 S 0.3 0.2 0:00.20 httpd    
32218 apache 15 0 87356 14m 6344 S 0.3 0.2 0:00.53 httpd    
    1 root  15 0 2160 640 556 S 0.0 0.0 0:01.18 init 

Da top, c'è un occasionale httpd <defunct> che mostra. Che cosa fa?Che cos'è l'httpd <defunct>?

Ho riscontrato che il server Web a volte non risponde a FPDF (stampa PDF su richiesta dell'utente). È correlato?

UPDATE, con informazioni relative al carico:

top - 11:55:59 up 17:30, 6 users, load average: 0.53, 0.47, 0.80 
Tasks: 322 total, 1 running, 320 sleeping, 0 stopped, 1 zombie 
Cpu(s): 0.7%us, 0.2%sy, 0.0%ni, 95.1%id, 3.9%wa, 0.0%hi, 0.1%si, 0.0%st 
Mem: 6219412k total, 5944068k used, 275344k free, 21024k buffers 
Swap: 5140792k total,  96k used, 5140696k free, 5270708k cached 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND   
1951 apache 16 0  0 0 0 Z 0.9 0.0 0:00.33 httpd <defunct>  
2267 apache 15 0 86992 13m 5876 S 0.9 0.2 0:00.22 httpd    
3302 mysql  15 0 156m 41m 4756 S 0.9 0.7 11:43.72 mysqld    
2220 apache 15 0 87204 14m 6496 S 0.6 0.2 0:00.28 httpd    
2340 apache 15 0 87828 13m 5588 S 0.6 0.2 0:00.22 httpd    
2341 apache 17 0 88236 14m 5564 S 0.6 0.2 0:00.15 httpd    
    842 apache 16 0 87432 15m 7180 S 0.3 0.2 0:00.81 httpd    
2225 apache 18 0 88236 14m 5560 S 0.3 0.2 0:00.17 httpd    
2401 apache 15 0 86916 12m 5344 S 0.3 0.2 0:00.11 httpd    
    1 root  24 0 2160 640 556 S 0.0 0.0 0:01.18 init    

risposta

14

Un processo defunta è un processo che è uscito, ma il cui padre non ha ancora aspettato su di esso per leggere il suo stato di uscita, lasciando una voce nella tabella dei processi. Conosciuto anche come un processo di zombi. Vedi la Wikipedia article per ulteriori informazioni.

+0

Se questi processi richiedono troppo spazio di memoria, posso eliminarli senza alcun effetto su altri processi? – diggy

+1

@diggy i processi defunct sono già usciti quindi non puoi ucciderli. Penserei che avrebbe già o presto liberato le sue risorse. – tvanfosson

1

Quando un processo muore su Unix, invia un codice di uscita al suo genitore. Un processo defunto, o "zombi", è uno il cui genitore non ha ancora guardato il codice di uscita dello zombi. Quando il genitore ottiene il codice di uscita (usando la chiamata di sistema wait), lo zombi scompare.

1

Un processo defunto è in genere uno che è terminato ma il sistema operativo lo mantiene fino a quando il genitore waits non riesce a "raccogliere" il suo stato. Solitamente si vede molto di questo quando hai scritto il tuo codice "forky" e hai dei bug.

Se si utilizza

ps -Hwfe 

Si arriva a vedere il hierarcy processo e quindi ciò che il genitore è. Peccato che sia un processo httpd, normalmente è abbastanza buono nel collezionare i suoi figli. A meno che il tuo sistema non funzioni, ecco perché stai usando top ...

+0

La CPU è piuttosto inattiva (vedere la parte UPDATE della domanda). Il principale punto lamenta dal punto di vista dell'utente (browser) è la creazione di PDF non riuscita occasionalmente. – ohho