Processo di zombi con CPU al 100%


12

Un processo zombie , che non dovrebbe utilizzare alcuna risorsa (RAM e CPU), sta eseguendo il backup di un intero core sulla mia installazione desktop Ubuntu 11.10 a 64 bit a 8 bit.

Questo è l'output di ps -el|grep Z:

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 Z  1000 10317     1 99  80   0 -     0 exit   ?        19:27:15 java <defunct>

... ed ecco un estratto da top:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                
10317 deltik    20   0     0    0    0 Z  100  0.0   1170:17 java <defunct>
 1424 root      20   0  612m 193m 158m S   14  2.4 287:17.11 Xorg
12580 deltik    20   0  710m 135m  46m S    5  1.7  27:31.07 compiz

Ecco come è nato il processo degli zombi:

  1. Ho aperto un JAR Java chiamato minecraft.jar . Questo launcher scarica un altro file JAR in ~ / .minecraft / bin / minecraft.jar
  2. Quel JAR era in esecuzione quando ho bloccato il mio computer con xscreensaver.
  3. Quindi, ho inserito la mia password per sbloccare il computer e ho visto che la finestra di Minecraft era bloccata.
  4. Ho provato a ucciderlo (PID 10317) con gnome-system-monitor. È diventato uno zombi.
  5. kill -9 10317 era inefficace.
  6. xkillchiuso solo la finestra intitolata "Minecraft"; non ha chiuso il javaprocesso sottostante .

Informazioni rilevanti:

  • Il driver grafico è FGLRX e ha causato problemi noti con Unity di Ubuntu 11.04 e Ubuntu 11.10 , incluso a volte un elevato utilizzo della CPU di Xorge compiz.

Voglio sapere:

  1. In che modo è possibile distruggere questo processo javasenza riavviarlo?
  2. Perché si sta verificando questo problema?
  3. Cosa posso fare per evitare che questo problema si ripeta?

1
Temo di non poterti aiutare personalmente, ma ti lodo per aver fatto un buon lavoro spiegando cosa è successo e cosa hai provato finora!
Pensa

7
"Ehi ragazzi questa applicazione sta consumando molto tempo della CPU. A proposito, è scritta in Java. Non so se i due sono correlati ???"
ta.speot.is l'

Molto probabilmente gira su una serratura.
Daniel R Hicks,


Succede anche a me mentre gioco, @RedGrittyBrick un processo java di zombi che esegue il vaso di Minecraft e uno zombi all'interno del gioco sono cose diverse.
Falk,

Risposte:


8

Il processo è già stato rinnovato init, quindi dovrebbe essere raccolto (altrimenti, la soluzione sarebbe probabilmente quella di uccidere il suo genitore). Sembra bloccato exit, in base al WCHANcampo.

Potrebbe effettivamente fare qualcosa (come la creazione di una discarica principale) che finirà e andrà via da solo. Sfortunatamente, è probabile che giri nel kernel a causa di un driver rotto e, alla fine, l'unica opzione sarà quella di riavviare.


È passato un po 'di tempo da quando ho posto questa domanda, ma non sono stato in grado di ricreare nuovamente il mio problema, soprattutto dopo aver aggiornato FGLRX all'ultima versione. Ho selezionato questa come la migliore risposta perché indica il driver rotto ed è la più completa.
Deltik,


4

I processi di zombi sono morti ma non sono ancora stati ripuliti (mietuto è il termine corretto) e quindi killnon funzionano su di essi come un normale processo. Il processo è ancora nella tabella dei processi ma quando è uno zombi, le risorse sono state disallocate.

Puoi provare a inviare un SIGCHLDsegnale al genitore del processo, altrimenti init dovrebbe averlo raccolto e alla fine lo raccoglierà. Se vuoi velocizzare il processo, puoi semplicemente riavviare.


1

Questo è un bug del kernel. Stai usando ecryptfs per crittografare la tua home directory? C'è un bug archiviato al riguardo su launchpad.net.


No, crittografo manualmente i file nella mia home directory.
Deltik,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.