100 % CPU를 사용하는 좀비 프로세스


13

좀비 프로세스에 모든 자원 (RAM 및 CPU)를 사용해서는 안된다 전체의 핵심을 독차지 내 8 코어 64 비트 우분투 11.10 데스크톱 설치에.

이 결과는 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. minecraft.jar 이라는 Java JAR을 열었습니다 . 이 런처는 ~ / .minecraft / bin / minecraft.jar에 다른 JAR 파일을 다운로드합니다
  2. 로 컴퓨터를 잠글 때 해당 JAR이 실행 중이었습니다 xscreensaver.
  3. 그런 다음 컴퓨터의 잠금을 해제하기 위해 암호를 입력했는데 Minecraft 창이 고정 된 것을 보았습니다.
  4. 로 (PID 10317)을 죽이려고했습니다 gnome-system-monitor. 좀비가되었습니다.
  5. kill -9 10317 효과가 없었습니다.
  6. xkill"Minecraft"라는 제목의 창만 닫았습니다. 기본 java프로세스를 닫지 않았습니다 .

관련 정보:

  • 그래픽 드라이버는 fglrx 드라이버이며 , 그것은으로 악명 높은 문제가 발생했습니다 유니티우분투 11.04우분투 11.10 때로는 높은 CPU의 사용을 포함하여, Xorgcompiz.

나는 알고 싶다:

  1. java다시 시작하지 않고이 프로세스를 제거하려면 어떤 방법이 있습니까?
  2. 이 문제가 발생하는 이유는 무엇입니까?
  3. 이 문제가 다시 발생하지 않도록하려면 어떻게해야합니까?

1
개인적으로 도와 드릴 수는 없지만, 지금까지 무슨 일이 있었는지, 지금까지 시도한 일을 잘 설명해 주셔서 감사합니다.
nhinkle

7
"이 응용 프로그램은 많은 CPU 시간을 사용하고 있습니다. 그건 그렇고, 그것은 자바로 작성되었습니다. 두 가지가 관련되어 있는지 몰라 ???"
ta.speot.는 1

아마도 자물쇠에 달려 있습니다.
Daniel R은


@RedGrittyBrick은 마인 크래프트 항아리를 실행하는 좀비 자바 프로세스와 게임 내부의 좀비가 다른 것들입니다.
Falk

답변:


8

프로세스는 이미으로 변경되었으므로 init수확해야합니다 (그렇지 않으면 솔루션이 상위를 종료 할 수 있음). 필드에 exit따라에 붙어있는 것으로 보입니다 WCHAN.

실제로 완료되는 코어 덤프 생성과 같은 작업을 수행하고 자체적으로 사라질 수 있습니다. 불행히도, 드라이버가 손상되어 커널에서 돌아가고있을 수 있으며 궁극적으로 유일한 옵션은 재부팅하는 것입니다.


이 질문을한지 오래되었지만 , 특히 FGLRX 를 최신 버전으로 업데이트 한 후에 문제를 다시 재현 할 수 없었습니다 . 나는 그것이 깨진 드라이버를 지적하고 가장 포괄적이기 때문에 이것을 최선의 대답으로 선택했습니다.
Deltik


4

좀비 프로세스가 종료되었지만 아직 정리되지 않았습니다 (올바른 용어 임). 따라서 kill정상적인 프로세스처럼 작동하지 않습니다. 프로세스는 여전히 프로세스 테이블에 있지만 좀비 인 경우 리소스가 할당 해제되었습니다.

SIGCHLD프로세스 상위에 신호를 보내려고 시도 할 수 있습니다 . 그렇지 않으면 init가 선택 하여 신호를 얻어야합니다. 프로세스 속도를 높이려면 간단히 재부팅하면됩니다.


1

이것은 커널 버그입니다. ecryptfs를 사용하여 홈 디렉토리를 암호화하고 있습니까? launchpad.net에 버그가 있습니다.


아니요, 홈 디렉토리의 파일을 수동으로 암호화합니다.
Deltik
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.