CPU 速度のステップは、(たとえば) htop で報告される CPU 使用率のパーセンテージにどのように影響しますか?

CPU 速度のステップは、(たとえば) htop で報告される CPU 使用率のパーセンテージにどのように影響しますか?

CPU 速度のステップは、(たとえば) htop で報告される CPU 使用率のパーセンテージにどのように影響しますか? 通常の top ではどうでしょうか?

では、CPU が 2GHz のフルスピードで 800MHz に下げられた場合、5% の使用率は、CPU が 0.05 * 800 = 4000 万サイクル使用されたことを意味しますか、それとも 0.05 * 2000 = 1 億サイクル使用されたことを意味しますか?

答え1

アプローチの違いについて合理的な説明を見つけるのは難しいのですが、私が見ているのは次のようなものです。

リナックス、を使用するとhtop、CPU使用率は現在のクロック速度CPU が完全にステップダウンすると、10 秒後に実行されて CPU のステップアップを引き起こす可能性のあるより「アクティブな」プロセスと比較すると、アイドルに近いバックグラウンド プロセスは実際よりもはるかに忙しく見える場合があります。

ここに本当に良い答えがあります(https://unix.stackexchange.com/a/58541/9854) で、これがどのように機能するかが説明されています。基本的に、システムは「クロック ティック」を追跡し、htop は、指定された期間、(瞬間的/その時点の) クロック速度を調べて、それをパーセンテージに変換します。この方法論では、100% を超える数値が得られることがあるようですが、それを正規化/制限する必要があると思います。

これはないタスクマネージャーがどのようにウィンドウズCPU 使用率を報告します。CPU の「標準的な」100% 容量に対する使用率に重点を置いているようです (オーバークロックやターボ ブーストの世界では、100% が何であるかをどのように決定するかはわかりません)。

この違いの一例として、まったく同じ状況で、CPU が通常のアイドル状態の 900MHz とビジー状態の 3600MHz ではなく異常に 200MHz に低下した場合、Linux htop は「CPU 容量が上限に達しました。パニックです」と報告しますが、Windows は、マウス カーソルを追跡するのに十分な CPU スループットがないにもかかわらず、「すべて正常です。CPU は完全に使用されていません」と表示します...

どちらの場合も、何をしているのかわかっていれば、これらの状況を「理解」できます。

  • Windows(10)では、「詳細」を開いてパフォーマンスタブのCPUセクションに切り替えると、現在のCPU周波数を確認できます。
  • Linux ではhtop、 でセットアップしF2、「表示オプション」の「CPU 周波数も表示する」ボックスをオンにします。これにより、使用率の数値がコンテキスト内に表示されます。

答え2

ステップは無関係です。5% は、CPU コアが 5% の時間、有用な作業を実行していたことを意味します。

速度を分数で乗算しないでください。そうすることで得られる数値は基本的に無意味です。得られる「40MHz」は無意味な数値です。40MHz では何も起こりません。

関連情報