Proceso de zombis con 100% de CPU

12

Un proceso zombie , que no debería estar usando ningún recurso (RAM y CPU), está acaparando un núcleo completo en mi instalación de escritorio Ubuntu 11.10 de 8 núcleos y 64 bits.

Esta es la salida de 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>

... y aquí hay un extracto de 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

Así es como el proceso zombie llegó a existir:

  1. Abrí un Java JAR llamado minecraft.jar . Este lanzador descarga otro archivo JAR a ~ / .minecraft / bin / minecraft.jar
  2. Ese JAR se estaba ejecutando cuando bloqueé mi computadora xscreensaver.
  3. Luego, ingresé mi contraseña para desbloquear la computadora y vi que la ventana de Minecraft estaba congelada.
  4. Traté de matarlo (PID 10317) con gnome-system-monitor. Se convirtió en un zombie.
  5. kill -9 10317 fue ineficaz
  6. xkillsolo cerró la ventana titulada "Minecraft"; No cerró el javaproceso subyacente .

Información relevante:

  • El controlador de gráficos es FGLRX , y ha causado problemas notorios con Unity of Ubuntu 11.04 y Ubuntu 11.10 , que a veces incluyen un alto uso de CPU de Xorgy compiz.

Quiero saber:

  1. ¿De qué manera hay que destruir este proceso javasin reiniciar, si lo hay?
  2. ¿Por qué está ocurriendo este problema?
  3. ¿Qué puedo hacer para evitar que este problema vuelva a ocurrir?
Deltik
fuente
1
Me temo que no puedo ayudarte personalmente, ¡pero te felicito por hacer un buen trabajo explicando lo que sucedió y lo que has intentado hasta ahora!
nhinkle
77
"Hola chicos, esta aplicación está usando mucho tiempo de CPU. Por cierto, está escrita en Java. ¿No sé si los dos están relacionados?"
ta.speot.is
Lo más probable es que esté girando en una cerradura.
Daniel R Hicks
También me sucede mientras juego, @RedGrittyBrick, un proceso de zombie java que ejecuta el tarro de Minecraft y un zombie dentro del juego son cosas diferentes.
Falk

Respuestas:

8

El proceso ya ha sido reparentado init, por lo que debería ser cosechado (de lo contrario, la solución probablemente sería matar a su padre). Parece estar atascado exit, según el WCHANcampo.

En realidad, puede estar haciendo algo (como crear un volcado de núcleo) que terminará y desaparecerá por sí solo. Desafortunadamente, es probable que gire en el núcleo debido a un controlador dañado y, en última instancia, su única opción será reiniciar.

David Schwartz
fuente
Ha pasado un tiempo desde que hice esta pregunta, pero no pude recrear mi problema nuevamente, especialmente después de actualizar FGLRX a la última versión. He seleccionado esta como la mejor respuesta porque señala el controlador dañado y es la más completa.
Deltik
4

Los procesos de zombis han muerto pero aún no se han limpiado (cosechado es el término correcto) y, por killlo tanto , no funciona en ellos como un proceso normal. El proceso todavía está en la tabla de procesos, pero cuando es un zombie, los recursos se han desasignado.

Puede intentar enviar una SIGCHLDseñal al proceso principal, de lo contrario, init debería haberlo recogido y lo cosechará eventualmente. Si desea acelerar el proceso, simplemente puede reiniciar.

Garrett
fuente
1

Este es un error del kernel. ¿Está utilizando ecryptfs para cifrar su directorio de inicio? Se ha registrado un error al respecto en launchpad.net.

psusi
fuente
No, cifro archivos manualmente en mi directorio de inicio.
Deltik