Процесс зомби с использованием 100% CPU

12

Процесс зомби , которые не должен использовать любые ресурсы (ОЗУ и ЦП), является коробление вверх весь сердечника на моей 8-ядерной 64-битной Ubuntu 11.10 Desktop установки.

Это вывод 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>

... и вот выдержка из 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

Вот как возник процесс зомби:

  1. Я открыл Java JAR под названием minecraft.jar . Этот модуль запуска загружает другой файл JAR в ~ / .minecraft / bin / minecraft.jar
  2. Этот JAR выполнялся, когда я заблокировал свой компьютер xscreensaver.
  3. Затем я ввел свой пароль, чтобы разблокировать компьютер, и увидел, что окно Minecraft было заморожено.
  4. Я пытался убить его (PID 10317) с gnome-system-monitor. Это стало зомби.
  5. kill -9 10317 был неэффективен.
  6. xkillзакрылось только окно под названием «Майнкрафт»; это не закрыло основной javaпроцесс.

Релевантная информация:

  • Графический драйвер - FGLRX , и он вызвал пресловутые проблемы с Unity of Ubuntu 11.04 и Ubuntu 11.10 , включая иногда высокую загрузку процессора Xorgи compiz.

Я хочу знать:

  1. Как можно разрушить этот процесс, javaне перезапуская его?
  2. Почему эта проблема происходит?
  3. Что я могу сделать, чтобы эта проблема не повторилась?
Deltik
источник
1
Боюсь, я не могу лично помочь вам, но я благодарю вас за хорошую работу, объясняющую, что произошло и что вы пробовали до сих пор!
nhinkle
7
«Эй, ребята, это приложение использует много процессорного времени. Кстати, оно написано на Java. Не знаю, связаны ли эти два вопроса ???»
ta.speot.is
Скорее всего, он вращается на замке.
Даниэль Р Хикс
Это также случается со мной во время игры, @RedGrittyBrick - процесс создания зомби-java, запускающий фишку майнкрафт и зомби внутри игры - разные вещи.
Фальк

Ответы:

8

Процесс уже переписан init, поэтому его нужно пожинать (иначе, скорее всего, решение будет убить его родителя). Похоже, застрял в exitзависимости от WCHANполя.

На самом деле это может быть что-то (например, создание дампа ядра), которое закончится и само исчезнет. К сожалению, он, вероятно, вращается в ядре из-за сломанного драйвера, и, в конечном счете, единственным вариантом будет перезагрузка.

Дэвид Шварц
источник
Прошло много времени с тех пор, как я задал этот вопрос, но я не смог снова воссоздать свою проблему, особенно после обновления FGLRX до последней версии. Я выбрал это как лучший ответ, потому что он указывает на неисправный драйвер и является наиболее полным.
Дельтик
4

Процессы зомби умерли, но еще не были очищены («пожинать» - правильный термин) и, следовательно kill, не работают с ними, как обычный процесс. Процесс все еще находится в таблице процессов, но когда это зомби, ресурсы были перераспределены.

Вы можете попытаться отправить SIGCHLDсигнал родителю процесса, в противном случае init должен был бы поднять его и в конце концов пожнет его. Если вы хотите ускорить процесс, вы можете просто перезагрузиться.

Garrett
источник
1

Это ошибка ядра. Вы используете ecryptfs для шифрования вашего домашнего каталога? Об этом сообщается об ошибке на launchpad.net.

psusi
источник
Нет, я вручную шифрую файлы в своем домашнем каталоге.
Deltik