Proces zombie przy użyciu 100% procesora


13

Proces zombie , których nie należy używać żadnych zasobów (pamięci RAM i CPU), jest wyginanie się cały rdzeń na moim 8-core 64-bitowego Ubuntu 11.10 instalacji Desktop.

To jest wynik 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>

... a oto fragment 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

Oto jak powstał proces zombie:

  1. Otworzyłem JAR Java o nazwie minecraft.jar . Ten program uruchamiający pobiera inny plik JAR do ~ / .minecraft / bin / minecraft.jar
  2. Ten plik JAR był wykonywany, gdy zablokowałem komputer xscreensaver.
  3. Następnie podałem hasło, aby odblokować komputer, i zobaczyłem, że okno Minecraft zostało zamrożone.
  4. Próbowałem go zabić (PID 10317) gnome-system-monitor. Stało się zombie.
  5. kill -9 10317 był nieskuteczny.
  6. xkilltylko zamknął okno zatytułowane „Minecraft”; nie zamknęło to podstawowego javaprocesu.

Istotna informacja:

  • Sterownik graficzny to FGLRX i spowodował on często występujące problemy z Unity z Ubuntu 11.04 i Ubuntu 11.10 , w tym czasami wysokie użycie procesora Xorgi compiz.

Chcę wiedzieć:

  1. W jaki sposób można zniszczyć ten proces javabez ponownego uruchamiania, jeśli taki istnieje?
  2. Dlaczego ten problem się dzieje?
  3. Co mogę zrobić, aby zapobiec ponownemu wystąpieniu tego problemu?

1
Obawiam się, że nie mogę ci osobiście pomóc, ale pochwalam cię za dobrą robotę, wyjaśniając, co się stało i co próbowałeś do tej pory!
nhinkle

7
„Cześć wszystkim, ta aplikacja zużywa dużo czasu procesora. Nawiasem mówiąc, jest napisana w Javie. Nie wiesz, czy te dwie są ze sobą powiązane ???”
ta.speot. jest

Najprawdopodobniej obraca się na zamku.
Daniel R Hicks,


Zdarza mi się również podczas grania @RedGrittyBrick proces zombie java uruchamiający słoik minecrafta, a zombie w grze to różne rzeczy.
Falk

Odpowiedzi:


8

Proces ten został już powtórnie odtworzony init, więc należy go wykorzystać (w przeciwnym razie rozwiązaniem byłoby zabicie jego rodzica). Wygląda na to, że utknął w exitzależności od WCHANpola.

Może faktycznie robi coś (jak tworzenie zrzutu pamięci), który zakończy się i zniknie sam. Niestety prawdopodobnie obraca się w jądrze z powodu zepsutego sterownika i ostatecznie jedyną opcją będzie ponowne uruchomienie.


Minęło trochę czasu, odkąd zadałem to pytanie, ale nie mogłem ponownie odtworzyć mojego problemu, szczególnie po zaktualizowaniu FGLRX do najnowszej wersji. Wybrałem to jako najlepszą odpowiedź, ponieważ wskazuje na uszkodzony sterownik i jest najbardziej wszechstronny.
Deltik


4

Procesy zombie umarły, ale nie zostały jeszcze oczyszczone (zbieranie jest właściwym terminem), a zatem killnie działa na nich jak normalny proces. Proces nadal znajduje się w tabeli procesów, ale gdy jest on zombie, zasoby zostały anulowane.

Możesz spróbować wysłać SIGCHLDsygnał do rodzica procesu, w przeciwnym razie init powinien go odebrać i w końcu go zbierze. Jeśli chcesz przyspieszyć proces, możesz po prostu zrestartować komputer.


1

To jest błąd jądra. Czy używasz ecryptfs do szyfrowania katalogu domowego? Na stronie launchpad.net zgłoszono błąd.


Nie, ręcznie szyfruję pliki w moim katalogu domowym.
Deltik,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.