効率性コアを備えたCPUでは、負荷平均をどのように計算する必要がありますか?

効率性コアを備えたCPUでは、負荷平均をどのように計算する必要がありますか?

私は最近、2つの「効率的な」コアと8つのパフォーマンスコアを備えたM1 pro CPUを搭載したMacBook Proを受け取りました。 htop / btop / topを実行すると、プロセススケジューラは常に需要が低い特定のプロセスを効率性コアに割り当て、そのコアが常に60%〜100%の容量で実行されるため、負荷平均が2よりも大きくなります。

2つの効率的なコアは、すでに複数のコアによってパフォーマンスが低下している負荷平均指標の有用性を減らすようです。遠い昔、シングルコアCPUを使用したときの負荷平均は直感的に理解されていました。しかし、現在システムには2種類のCPUコアがあり、最新の電話には効率、パフォーマンス、および単一の超高性能コアという3種類のコアがあります。

これらの新しい負荷平均はどのように計算する必要がありますか?一般的なシステム負荷指標をオーバーライドしようとしていますか?

効率性コアは、優先順位の低いプロセスを実行するように設計されているため、これらのプロセスを基本指標から除外するのは妥当ですか?残りの負荷値は非効率なCPUに割り当てられます。

たとえば、負荷平均は3.4です。効率コアから2を引くと1.4です。その後、パフォーマンスコアの数で割ると、1.4/8 = 0.175です。

ベストアンサー1

まず、「ロード」が実際に何であるかについて話す必要があります。これは、現在実行されているプロセスの数に、いわゆる「ノンストップスリープ」状態、つまりほとんどの周辺IOのデータを待っているプロセスの数を加えたものです。

つまり、16個のコアマシンがあり(個々のコアが「強いか弱い」かに関係なく)、100個のプロセスを実行すると、各プロセスにIOが過度にロードされます(たとえば、メモリマップされたファイルのページを台無しにする方法で) 、または切り替え要求に応じてロードすることで、100の負荷を得ることができます。いいえ主にCPUコアの使用量によって異なります。現在の負荷状況を測定しようとします。システムはい。

異なるシステムの負荷を比較することはあまり役に立ちません。ロッドがスムーズな場合(ロッド平均厳密に言えば間違っています。電気工学の背景がある場合は、次のようになります。指数加重移動平均つまり、単純な単極IIRフィルタの出力)が減少して作業に追いついています。しかし、2つの異なるシステムを互いに隣に配置し、負荷が確実に比較できるとは期待できません。したがって、異なるCPUアーキテクチャでより一般的に役立つようにロードをオーバーライドすることは議論の余地があります。それは仕事が進む方法ではありません。

2つの効率性コアが負荷平均指標の有用性を減らすようです。

今、あなたが要求した質問は、「ロード」が単に「CPUのロード」(つまり、特定の瞬間にアイドル状態ではないCPUの数)であると仮定することを知っているので、Linuxの「ロード」メトリックを議論するのではなく、この質問を解決する必要がありますします。

過去にはCPU使用率がほとんど役に立たなかった。 2000年頃にCPUコアが周波数を動的に調整したため、AMDのPowerNow!は消費者コンピュータ(ノートブック)を一掃しました。 50%の時間で1.2 GHzで実行されるコアは、3.9 GHzで実行されるコアよりも価値がなく、両方のコアが同時に同じシステムに存在し、長期的に計算するのにかかる時間に応じて周波数を変更できます。平均。これは、CPU使用率がしきい値を超えて十分なジョブが準備されている場合に発生します。そうですね。正直言って、「CPU使用率」は「90%未満であれば、私のシステムは確かにより多くのCPU作業を行うことができますが、それ以外は作業によって異なると言うのは難しい」に過ぎないと思いました。

だから正直に言って、過去20年ほどの間、それはあまり役に立たない尺度ではありませんでした。

遠い昔、シングルコアCPUを使用したときの負荷平均は直感的に理解されていました。

周波数スケーリングはその時点ですでに問題でした。 「CPUがストレージまたはネットワークを待つ時間の90%」は、利用率が低いように見えますが、実際には「私が提供したいワークロードに対して100%飽和しています」を意味します。 「。一つある非常にそこには直感性が限られています。最近の1990年代初頭には、CPUとRAM、周辺バスが分離され、CPUがアイドル状態ではない時間を測定することが説明の面でやや曖昧です。システム荷物。これが提供するのは、コンピュータの多くの制限されたリソースの1つが枯渇しているかどうかに関する情報であり、コンピュータのCPU使用率は0.1です。コア) おそらく高いクロック周波数ではあまり実行されないので、負荷が高くなるとコンピュータが突然より強力になります。コンピュータにはるかに複雑で予測不能な異機種CPUコアがある場合でも、同じことが起こります。これは新しい発明ではありません。ハイパースレッディングは約15年前に消費者コンピュータに導入され、NUMAコンピュータはずっと前にすでに登場しました。

これらの新しい負荷平均はどのように計算する必要がありますか?

正直言って、まったくそうではありません。現在の指標を維持してください!現在のロードメトリックの目的は1つです。同じシステムのワークロードを比較可能にすることです。それにもかかわらず、合理的なクロスプラットフォーム比較をするのは難しいです。

一般的なシステム負荷指標をオーバーライドしようとしていますか?

システム使用率に本当に関心を持ち、ワークロードに合わせてシステムサイズを正しく調整する人(ノートブックのように保有しているシステムが予想作業を十分速く実行できるかどうかだけでなく)、システム使用率を下げるのと同じ方法でこの作業を行います。にワークロードに拘束されない単一の数値:特定のワークロード(または必要なワークロードの範囲)のボトルネックが何であるかを確認し、必要な追加リソースを割り当てる必要があります。 「CPU時間」は、これらのリソースの1つに過ぎません。

おすすめ記事