「最上位」CPU番号がシステムモニタとConky Process PanelのCPU番号と異なるのはなぜですか?

「最上位」CPU番号がシステムモニタとConky Process PanelのCPU番号と異なるのはなぜですか?

スループットが高い間にノートブックの速度が一時的に遅くなると、デスクトップのプロセスパネルに実際に表示されるよりも高い数値が表示されることが予想されます(CPU使用量)。そしてシステムモニターから。

端末にtop表示されている数字を使って適法さを証明するコンピュータが一時的に遅くなります。たとえば、Firefoxが比較的高いCPUリソース(「Webコンテンツ」と表示されている)を使用する一部のプラグインを実行している場合、conkyスクリプト(Gnomeシステムモニタと同様)は使用されたCPUリソースが約25%ですが、topディスプレイには約71 %が表示されます。 %、PCを考えると、より「現実的な」ようです。持つ速度が遅くなりますね。

ここに画像の説明を入力してください。

私が使用しているconkyから「実際の」数字をどのように取得できますか?topシステムモニタと異なる理由は何ですか?

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

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

など。

答え1

これは、値が使用可能な合計CPUパフォーマンスの割合ではtopなく、単一のCPUコアの割合として表示されるためです。conky実行しtopて押すとI同じ(ほぼ同じであり、常に競合状態があります。CPUtopをポーリングするのにかかる時間が実際に実行するのにかかる時間とまったく同じではないconky)数字が表示されます。

これはman top(強調鉱山)に文書化されています:

  1. %CPU——CPU使用量

    最後の画面更新以降、ジョブで費やしたCPU時間の割合で、合計CPU時間の割合として表示されます。

    実際のSMP環境では、プロセスがマルチスレッドでtopがスレッドモードで実行されていない場合、100%を超える数値が報告されることがあります。 「H」インタラクティブコマンドを使用してスレッドモードを切り替えることができます。

    さらに、マルチプロセッサ環境では、Irixモードがオフになると、topはSolarisモードで実行されます。ここで、ジョブの CPU 使用量は CPU の総数に分けられます。 「I」インタラクティブコマンドを使用して、Irix / Solarisモードを切り替えることができます。

したがって、この例では、topIrixモードで%CPU値を単一のCPUの割合として報告しますが、conkyそれを使用可能なすべてのCPUの割合として報告することです。

そして、説明のために、これは複数のスレッドを使用できるtop8コアノートブックで実行されるときの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回実行したため、数値は正確に一致しませんが、おおよその概念を見ることができます。

関連情報