web-dev-qa-db-ja.com

明らかなプロセスがない場合の高負荷のトラブルシューティング方法

ラップトップでUbuntu 13.10を実行しています。最近、スリープから復帰した後、コンピュータがかなり暖かく、トップをチェックして、平均負荷が1.00であることを発見しました。 Chrome、さまざまなデーモンをシャットダウンしましたが、効果はありません。

再起動してターミナルを起動し、再びtopをチェックしました。負荷がすぐに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ファイルシステムチェッカー?ルートキット?問題のプロセスを見つける方法はありますか?

18

負荷平均は、それが何を意味するかを意味するものではありません。これは、瞬時の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プロセスはおそらく特に興味深いでしょう。

24
Sobrique

20年前のコンピュータについて話していない限り、負荷は1.0がラップトップを飽和させていません。

  • まず、もう一度 load averages についてお読みください。 1.0は、実行キューにリソースを待機する単一のタスクがあることを意味します。
  • cat /proc/cpuinfo。そこにリストされているCPUの数を確認しますか?これは、CPUベースの負荷飽和を達成するためにヒットする必要がある総負荷です。

さらに重要なのは、CPU(および他のデバイス)が消費している電力量です。ラップトップは、特にCPUの場合は、不要なデバイスの電源をオフにするか、不要な場合は低消費電力を使用して電力を節約します。

2
Andrew B