명백한 프로세스가 없을 때 고부하 문제를 해결하는 방법

명백한 프로세스가 없을 때 고부하 문제를 해결하는 방법

내 노트북에서 Ubuntu 13.10을 실행하고 있습니다. 최근 잠에서 깨어난 후 컴퓨터가 매우 뜨겁다는 것을 발견했고, 상단을 확인해 보니 부하 평균이 1.00이었습니다. Chrome과 다양한 데몬을 닫았지만 소용이 없었습니다.

재부팅하고 터미널을 시작한 후 상단을 다시 확인한 결과 로드가 1.75로 빠르게 급증한 다음 천천히 약 1.0 - 1.2로 떨어지는 것을 발견했습니다.

top - 09:49:17 up 36 min,  2 users,  load average: 1.01, 1.10, 1.01
Tasks: 267 total,   1 running, 266 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.9 us,  0.4 sy,  0.0 ni, 98.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8069288 total,  2885572 used,  5183716 free,   123652 buffers
KiB Swap:  7711332 total,        0 used,  7711332 free,  1661816 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                                                                                                        
 1420 root      20   0  589m 144m 131m S   3.4  1.8   0:36.49 Xorg                                                                                                                                           
 6233 user1    20   0  986m  83m  31m S   2.7  1.1   0:19.89 chrome                                                                                                                                         
 3708 user1    20   0  749m  19m  12m S   1.8  0.3   0:06.58 gnome-terminal                                                                                                                                 
 3526 user1    20   0 1350m  67m  28m S   1.4  0.9   0:26.19 compiz                                                                                                                                         
 4014 user1    20   0 1022m 126m  52m S   1.1  1.6   0:44.34 chrome                                                                                                                                         

/proc/loadavg를 수동으로 확인했습니다. 같은 이야기입니다.

sudo cat /proc/loadavg
1.20 1.16 0.99 3/614 6254

ps auxwwwf는 CPU를 6.0% 이상 소비하는 프로세스를 표시하지 않습니다.

iostat:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.63    0.00    0.13    0.00    0.00   99.25

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

자유-m:

             total       used       free     shared    buffers     cached
Mem:          7880       2841       5039          0        120       1651
-/+ buffers/cache:       1068       6811
Swap:         7530          0       7530

분명히 일부 프로세스가 CPU를 포화시키고 있는데 프로세스 목록에 표시되지 않는 것 같습니다. Linux용 숨겨진 파일 시스템 검사기 같은 것이 있나요? 루트킷? 문제가 있는 프로세스를 찾는 방법에 대한 아이디어가 있습니까?

답변1

로드 평균은 사용자가 생각하는 의미를 의미하지 않습니다. 이는 즉각적인 CPU 사용량과는 관련이 없으며 실행 대기 중인 프로세스 수와는 관련이 없습니다.대개CPU가 필요한 경우가 많지만 항상 그런 것은 아니기 때문입니다. 일반적인 원인은 IO(디스크 또는 네트워크)를 기다리는 프로세스입니다.

실행 ps -e v해 보고 프로세스 상태 플래그를 찾아보세요.

state    The state is given by a sequence of characters, for example, "RWNA". The      first character indicates the run state of the process:
D    Marks a process in disk (or other short term, uninterruptible) wait.
I    Marks a process that is idle (sleeping for longer than about 20 seconds).  
L    Marks a process that is waiting to acquire a lock.
R    Marks a runnable process.
S    Marks a process that is sleeping for less than about 20 seconds.
T    Marks a stopped process.
W    Marks an idle interrupt thread.
Z    Marks a dead process (a "zombie").

이는 ps맨페이지에 있으므로 맨페이지에서 자세한 내용을 찾을 수 있으며 R프로세스 D가 특히 흥미로울 수 있습니다.

관련 정보