web-dev-qa-db-ja.com

CPU 100%アイドルですが、それでも負荷平均を示しています

CentOS 6.4のブレードサーバーがあります。

アイドル状態では、1を超える一定の負荷平均を示します。ただし、同じハードウェアとCentOSバージョンを持つ別のマシンを準備しましたが、アイドル状態のときの負荷平均はほぼ0のままです。

Topの出力は次のとおりです。

top - 10:23:04 up 156 days, 18:15,  1 user,  load average: 1.08, 1.35, 1.31
Tasks: 534 total,   1 running, 533 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  65959040k total, 10021484k used, 55937556k free,   167092k buffers
Swap: 32767992k total,    13884k used, 32754108k free,  7084024k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
20951 root      20   0 15396 1608  952 R  0.3  0.0   0:01.52 top
    1 root      20   0 19352  684  472 S  0.0  0.0   0:01.64 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.03 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:15.31 migration/0
    4 root      20   0     0    0    0 S  0.0  0.0   0:12.32 ksoftirqd/0
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    6 root      RT   0     0    0    0 S  0.0  0.0   0:17.45 watchdog/0
    7 root      RT   0     0    0    0 S  0.0  0.0   0:16.26 migration/1
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1
    9 root      20   0     0    0    0 S  0.0  0.0   0:18.51 ksoftirqd/1

完全にアイドル状態のときにシステム負荷平均が1を超える原因となっているプロセスはどれですか?

4
haroon_aut

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

上位の出力には次のものが含まれます。

Tasks: 534 total,   1 running, 533 sleeping,   0 stopped,   0 zombie

その1つの実行中のプロセスが、負荷平均の原因です。それを見つけて、それが何をしているのかを理解してください。 (編集:コメントで述べたように、そのrunningプロセスはおそらくtopです。したがって、それは無視してください)

6
Sobrique