9

Debian で動作するシングル コアの小型 ARM プロセッサを使用していますが、top の CPU 使用率の出力を理解するのに問題があります。以下を参照してください。

top - 15:31:54 up 30 days, 23:00,  2 users,  load average: 0.90, 0.89, 0.87
Tasks:  44 total,   1 running,  43 sleeping,   0 stopped,   0 zombie
Cpu(s): 65.0%us, 20.3%sy,  0.0%ni, 14.5%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:     61540k total,    40056k used,    21484k free,        0k buffers
Swap:        0k total,        0k used,        0k free,    22260k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                    
26028 root      20   0  2536 1124  912 R  1.9  1.8   0:00.30 top                                                                                        
31231 root      19  -1 45260  964  556 S  1.9  1.6   1206:15 owserver                                                                                   
    3 root      15  -5     0    0    0 S  0.3  0.0   0:08.68 ksoftirqd/0                                                                                
  694 root      20   0 28640  840  412 S  0.3  1.4 468:26.74 rsyslogd         

列 %CPU はすべてのプロセスで非常に低く、この例では全体で 4.4% です (以下の他のプロセスはすべて 0% でした)。しかし、3 行目の全体の CPU は 65%us と 20%sy を示しているため両方の非常に高い値 - ちなみに、これはシステムがどのように感じるかです: 非常に遅い :-( システムはほとんど常にこの状態にあります: すべてのプロセスの CPU が非常に低いですが、ユーザー + システム CPU は高いです。誰か説明できますか?なぜ top ツールの出力にこれほど高い矛盾があるのでしょうか? また、ユーザー + システムの CPU 使用率が高い原因を突き止めるには、どのツールを使用すればよいでしょうか? top はここでは役に立たないようです。

更新:その間、私はこのスレッドを見つけましたhere、同様の質問について説明していますが、そこに何が書かれているのか確認できません:

  • コマンドuptimeは、1/5/15 分あたりの平均 CPU 使用率を示します。
  • これは、トップの最初の行が%us+%sy の合計として出力するものに近いものです。しかし、これはもっと変化しています。10 秒あたりの平均でしょうか?
  • 一番上の出力をより長く見ても、%us+%sy の合計は常にすべての %CPU の合計よりも数倍高くなります。

ありがとうアキム

4

1 に答える 1

7

その出力をより鋭敏に理解するには、manpageのを読む必要があります。topマンページから:

%CPU-CPU使用率

最後の画面更新から経過したCPU時間のタスクのシェア。合計CPU時間のパーセンテージとして表されます。デフォルトの画面更新時間は3秒ですが、これはで変更できます#top -d ss.tt。可換CPU使用率を測定するには、を実行しますtop -S

-S:累積時間モードトグル

最後に記憶された「S」状態を逆にしてトップから開始します。「累積モード」がオンの場合、各プロセスは、プロセスとその死んだ子が使用したCPU時間とともに一覧表示されます。

CPUの状態は、概要領域に表示されます。これらは常にパーセンテージで表示され、現在から最後の更新までの時間です。

    us  --  User CPU time
      The time the CPU has spent running users' processes that are not niced.

    sy  --  System CPU time
      The time the CPU has spent running the kernel and its processes.

    ni  --  Nice CPU time
      The time the CPU has spent running users' proccess that have been niced.

    wa  --  iowait
      Amount of time the CPU has been waiting for I/O to complete.

    hi  --  Hardware IRQ
      The amount of time the CPU has been servicing hardware interrupts.

    si  --  Software Interrupts
      The amount of time the CPU has been servicing software interrupts.

    st  --  Steal Time
      The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine).

通常の状況では、%us +%syは常に高くなります。

于 2012-12-10T12:18:20.180 に答える