明らかなプロセスがないときに高負荷の問題を解決する方法

明らかなプロセスがないときに高負荷の問題を解決する方法

私のラップトップで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が特に興味深いことがあります。

関連情報