web-dev-qa-db-ja.com

「トップ」のCPU番号がシステムモニターやConky Process Panelと異なるのはなぜですか?

私のラップトップがやや重い処理中に少し遅くなると、デスクトップ上にあるコンクなプロセスパネルで実際に見るよりも(CPU使用のために)より高い数値が表示されると期待します- およびシステムモニター。

ターミナルでtopを使用すると、コンピュータの一時的な速度低下justifyという数値が表示されます。たとえば、Firefoxが比較的高いCPUリソース(「Webコンテンツ」として表示される)を使用するいくつかのアドオンで実行されている場合、conkyスクリプト(Gnome System Monitorと同様)はCPUリソースの約25%を表示しますが、top PCが実際に遅くなるという事実を考えると、約71%を示しています。

enter image description here

どのように私は私が使用する馬車でそれらの「本当の」数を得ることができますか?そして、なぜtopはそれとシステムモニターとは異なるのですか?

ここで重要なconkyスクリプトの部分は次のとおりです。

${top name 1} $alignr ${top cpu 1}%
${top name 2} $alignr ${top cpu 2}%
${top name 3} $alignr ${top cpu 3}%

等.

2
cipricus

これは、topが単一のCPUコアのパーセンテージとして値を示しているのに対し、conkyは利用可能な合計CPUパワーのパーセンテージを示しているためです。 topを実行して、 I 同じ(ほぼ同じ、常に競合状態が発生します:topがCPUをポーリングする時間は、conkyが行う正確な時間とは異なります)。

これはman top(鉱山を強調):

  1. %CPU-CPU使用率

    最後の画面更新からの経過CPU時間に対するタスクのシェア。合計CPU時間の割合として表されます。

    真のSMP環境では、プロセスがマルチスレッドで、topがスレッドモードで動作していない場合、100%を超える量が報告されることがあります。対話モードの「H」でスレッドモードを切り替えます。

    マルチプロセッサ環境の場合も、Irixモードがオフの場合、topはSolarisモードで動作し、タスクのCPU使用量はCPUの総数で除算されます。対話型のIでIrix/Solarisモードを切り替えますコマンド

したがって、この例では、topがIrixモードであり、%CPU値を単一CPUのパーセンテージとして報告しているのに対し、conkyはすべてのパーセンテージとして報告している利用可能なCPU。

そして、説明のために、これは、複数のスレッドを使用できるtopを実行しているときの8コアラップトップのIrixモードでのpigzの外観です。

PID     USER      PR  NI    VIRT    RES  %CPU  %MEM     TIME+ S COMMAND                                                               
1090509 terdon    20   0  657.6m   4.5m 605.3   0.0   0:33.18 R pigz                                                                  

%CPUが100をはるかに上回っていることを確認しますか?これで、Solarisモードで同じことが表示されます。

PID     USER      PR  NI    VIRT    RES  %CPU  %MEM     TIME+ S COMMAND                                                               
1100171 terdon    20   0  657.6m   4.5m  82.0   0.0   1:24.08 S pigz                                                                  

出力を取得するためにコマンドを2回実行したため、数値は正確には一致しませんが、一般的なアイデアを確認できるはずです。

3
terdon