vmstat、mpstat、sar、およびtopを使用した高負荷平均の理解

vmstat、mpstat、sar、およびtopを使用した高負荷平均の理解

アイドル状態のときにシステムの負荷平均を理解しようとしています。以下は、ほとんど何もインストールしていない状態でシステムを数時間実行した後の結果です。

仮想マシンの状態

root@arm:~# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0      0  62092  17860 135940    0    0     9    21  158  245  1  1 97  0
 0  0      0  62092  17860 135940    0    0     0     0  105  137  0  0 100  0
 0  0      0  62060  17860 135940    0    0     0     0  105  128  0  0 100  0
 0  0      0  62060  17860 135940    0    0     0     0  105  174  0  0 100  0
 0  0      0  62060  17860 135940    0    0     0     0  105  155  0  0 100  0
 0  0      0  62092  17860 135940    0    0     0     0  105  134  0  0 100  0
 0  0      0  62092  17860 135940    0    0     0     0  105  127  0  0 100  0
 0  0      0  62092  17860 135940    0    0     0     0  106  133  0  0 100  0
 0  0      0  62092  17860 135940    0    0     0     0  105  129  0  0 100  0
 0  0      0  62092  17868 135940    0    0     0    52 2101 4081  0  4 95  1
 0  0      0  62092  17868 135940    0    0     0     0  103  173  0  0 100  0
 0  0      0  62060  17868 135940    0    0     0     0  103  129  0  0 100  0

統計資料

root@arm:~# mpstat 1
Linux 3.10.0 (arm)  03/25/15    _armv7l_    (1 CPU)

20:02:04     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
20:02:05     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20:02:06     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20:02:07     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20:02:08     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20:02:09     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20:02:10     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20:02:11     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20:02:12     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20:02:13     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
20:02:14     all    0.00    0.00    0.00    0.00    0.00    0.99    0.00    0.00   99.01
20:02:15     all    0.00    0.00    0.00    0.00    0.00    0.99    0.00    0.00   99.01
20:02:16     all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

男の名前

root@arm:~# sar
Linux 3.10.0 (arm)  03/25/15    _armv7l_    (1 CPU)

17:53:42          LINUX RESTART

17:54:01        CPU     %user     %nice   %system   %iowait    %steal     %idle
17:55:01        all      0.25      0.00      0.63      0.00      0.00     99.12
17:56:01        all      0.07      0.00      0.47      0.00      0.00     99.47
17:57:01        all      0.25      0.00      0.43      0.02      0.00     99.30
17:58:01        all      0.20      0.00      0.47      0.03      0.00     99.30
17:59:02        all      0.13      0.00      0.30      0.03      0.00     99.53
18:00:01        all      0.08      0.00      0.36      0.02      0.00     99.54
18:01:01        all      0.12      0.00      0.45      0.02      0.00     99.4

3つのユーティリティはすべて同様の結果を示しました。今トップに向かって...

トップ

top - 19:50:39 up  2:47,  1 user,  load average: 0.81, 0.77, 0.77
Tasks:  50 total,   1 running,  49 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.4 us,  0.8 sy,  0.0 ni, 97.3 id,  0.4 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem:    251692 total,   189540 used,    62152 free,    17724 buffers
KiB Swap:        0 total,        0 used,        0 free,   135920 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                               
 5249 root      20   0  3100 1176  864 R  10.7  0.5   0:00.07 top                                   
    1 root      20   0  2104  708  612 S   0.0  0.3   0:01.16 init                                  
    2 root      20   0     0    0    0 S   0.0  0.0   0:00.01 kthreadd                              
    3 root      20   0     0    0    0 S   0.0  0.0   0:00.05 ksoftirqd/0                           
    5 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kworker/0:0H                          
    6 root      20   0     0    0    0 S   0.0  0.0   0:00.25 kworker/u2:0                          
    7 root      20   0     0    0    0 S   0.0  0.0   0:00.01 rcu_preempt                           
    8 root      20   0     0    0    0 S   0.0  0.0   0:00.00 rcu_bh                                
    9 root      20   0     0    0    0 S   0.0  0.0   0:00.00 rcu_sched                             
   10 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 khelper                               
   11 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kdevtmpfs                             
  202 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 writeback                             
  204 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 bioset                                
  206 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kblockd                               
  235 root      20   0     0    0    0 S   0.0  0.0   0:00.00 khubd      

負荷平均は次のとおりです。[0.81、0.77、0.77]

このように高い「負荷平均」を引き起こす原因は何ですか?

編集:この質問は負荷平均とは関係ありません。

「ロード平均数は、実行中のキュー(ステータスR)またはディスクI / Oを待っている(ステータスD)ジョブの数を表します。

I / Oがほぼゼロの場合、どのように状態Dプロセスがあり、実行キューにどのように多くのタスクがあるのでしょうか。どの職業があるかを知る方法はありますか?

答え1

負荷平均は相対的な用語です。 0.01、3.00、14.00 となります。これはバックアップされる作業量を示す指標にすぎず、使用可能なコアの数によって異なります。 4コアシステムでは、3.9は何もバックアップされないことを意味します(しかしほとんど...)。

出力を見ると、topCPUの10.7%しか使用していないことがわかりましたtop。しかし、あなたは安価なコアを持っていると思います。この場合、平均値は0.8の範囲に簡単に到達できます。

負荷平均は、CPUのアイドル状態ではない割合と直接関係するのではなく、渡される作業量と競合レベル(存在する場合)に関連していることに注意することが重要です。

以下は、loadavg計算の実際の複雑さに対するより徹底的な答えです。https://stackoverflow.com/questions/11987495/linux-proc-loadavg

答え2

パフォーマンスがシステムで実行されていると仮定すると(以前のラップトップで競合が発生した場合)、全体の割合を示すより詳細なCPU統計を取得できます。つまり、すべてのアイドル時間が無視されるため、大きな割合が得られます。 :

perf top --sort=comm

私はこれがIOに関して実際に役に立たないと思います。たとえいつも寝ているのではなく、実際に目覚める最優先を強調するのですが。

関連情報