Die CPU-Auslastung hoch für einen schlafenden Prozesse

Ich habe einen Prozess, der zu sein scheint festgefahren:

# strace -p 5075
Process 5075 attached - interrupt to quit
futex(0x419cf9d0, FUTEX_WAIT, 5095, NULL

Es ist das sitzen auf dem "futex" - system nennen, und scheint auf unbestimmte Zeit warten auf ein lock. Der Prozess gezeigt werden, verbrauchen eine große Menge der CPU, wenn "oben" wird ausgeführt:

# top -b -n 1
top - 23:13:18 up 113 days,  4:19,  1 user,  load average: 1.69, 1.74, 1.72
Tasks: 269 total,   1 running, 268 sleeping,   0 stopped,   0 zombie
Cpu(s):  8.1%us,  0.1%sy,  0.0%ni, 91.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  12165696k total,  3810476k used,  8355220k free,    29440k buffers
Swap:  8388600k total,    43312k used,  8345288k free,   879988k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
5075 omdb      18   0 2373m 1.7g  26m S 199.7 14.9 102804:11 java

Den Prozess ist, zeigt sich auch in einer "S" - Schlafmodus, was Sinn macht, wenn es das warten auf eine Ressource. Aber ich verstehe nicht, warum die CPU-Auslastung annähernd 200%, wenn der Prozess in den Ruhezustand. Warum top-Bericht, wie hoch die CPU-Auslastung auf einen schlafenden Prozess? Sollte nicht die CPU-Auslastung gleich null sein?

InformationsquelleAutor der Frage blindsnowmobile | 2012-05-16

Schreibe einen Kommentar