0.00の負荷平均はどのように存在しますか?


12

ロードバランスは、CPUの混雑度を測定する方法であることを理解しています。ただし、負荷平均がどのように0.00存在するかはわかりません。カーネルは常に実行されませんか?それはCPU負荷の一部になりませんか?


6
ほとんどの場合、0.00と表示されるものは実際には0.0001程度であることに注意してください
。– PlasmaHH

1
昔は、実行キューの平均長でした。言い換えると、実行準備ができていた(およびI / Oなどを待機していない)プロセスの数。ない場合は0.00です。最近では、これはグラフィカルなデスクトップではなく、GUIのない​​サーバーを実行する場合にのみ可能です。
するThorbjörnRavnアンデルセン

完全を期すために、しばらくの間、カーネルアイドルスレッドが負荷平均にカウントされ、システムがまったく何もしていないときに負荷平均1.00を発生させるカーネルバグがあったのはBSDの1つだったと思います。それはすぐに修正されました。
CVn

回答:


16

一定期間の負荷平均は、その一定期間にCPUを奪い合っていたプロセスの平均数です。何もすることがない場合、「カーネル」は実行されません。具体的には、何も実行されない場合、CPUはカウントされない特別な「アイドル」スレッドに与えられます(CPUを置くなどの処理を行う可能性があるのは、割り込みを待つ状態です)。

したがって、たとえば、5分間の平均負荷0.6は、通常、その5分間でCPUがプロセス(またはカーネル)によって合計3分間使用され、合計2分間使用されたことを意味します。アイドル状態でした。しかし、@ UKMonkeyが観察しているように、4分30分間何もしなかった後、最後の30秒間で6つのプロセスがCPUを奪い合ったということかもしれません...

すべてのプロセスが入力または出力操作の完了を待機しているか、特定の将来の時刻にウェイクアップするのを待機しているため、CPUはアイドル状態であり、コードの実行に使用するプロセスはありません。

@Pantherのリンクは、負荷平均の詳細な説明を提供します。


1
5分間の負荷平均0.6は、4分間半も何もしなかったことを意味する可能性があります-そして、最後の30秒間にCPU時間を待機しているかなりの数のプロセスがありました... CPUは実行しましたが、使用を待機しているプロセスの数。
UKMonkey

@UKMonkey:完全に正しい...平均は平均であり、多くの方法で同じ平均を得ることができます。回答を編集して、中程度の平均はピークも妥当であることを意味しないことを説明しました。
AlexP

13

負荷平均は、CPUコアを一度に使用したいプロセスの数という観点から見たCPUコアの過負荷の尺度です。

以下は、シングルコア(シングルスレッド)CPUを想定しています。

  • 0.0

    CPUは何もしていません。プロセスがCPUの使用を開始する場合、それを使用するのはそれだけです。

    アイドルCPUは、実行中のプロセスがないという意味ではありません。たとえば、バックグラウンドサービスとカーネルはまだ実行されており、メモリを占有しています。彼らは何もしていないので、CPUを使用していません。

  • 1.0

    CPUは最大使用率ですが、CPUを使用するためのプロセス間の競合はゼロです。つまり、1つのプロセスのみが実行されているため、CPU時間の100%を要求することができます。あるいは、複数のプロセスが実行されていますが、100%CPUを要求しているプロセスはなく、それらを組み合わせたCPU使用率は合計で100%になります。それらはすべて、CPUを使用していても、実行速度と同じ速度で動作しています。

  • 1.0より大きい

    CPUは最大使用率であり、同時に使用したい複数のプロセスがあるため、アイドルCPUで実行できる場合よりも効率的に実行が遅くなります。たとえば、負荷平均が3.0の場合、プロセスは実行したい速度の3分の1で実行されています。負荷平均50.0は、他のすべてのプロセスが実行されているため、プロセスが実行したい速度の1/50で実行されていることを示します。つまり、1.0より高い数値は、使用可能なCPUがますます多くのプロセス間でストレッチされていることを示しています。

マルチコアCPUを使用しても、図の意味は変わりませんが、解釈が変わる可能性があります。たとえば、4コアのCPUがある場合、1.0の負荷は、1つのコアで100%CPUを使用する1つのプロセスと同等ですが、他の3つのコアがあります。したがって、4コアCPUでは、最大効率のポイントは1.0ではなく4.0であり、すべてが1/3の効率で実行されるポイントは3.0ではなく12.0です。複雑さを増すために、1つのプロセスに複数のスレッドがあり、それぞれが独自のCPUを要求している場合があります。そのため、1つのプロセスがマルチスレッドの場合、4つのコアすべての100%を使用できます。

重要な注意点

CPU使用率は、プロセスのパフォーマンスを制限する可能性がある1つのリソースにすぎません。I / Oは別の方法であり、CPUの負荷には含まれません。特定の量のCPUを使用するプロセスは、他のボトルネックにぶつかる可能性があるため、負荷の軽いマシンで必ずしもより多く使用できるとは限りません。

最適な平均負荷とは何ですか

それは本当にあなたが何をしているのか、そしてあなたが応答性を好むのか、それともCPUが可能な限り一生懸命に働くのかによって異なります。

可能な限り多くのことを行う必要がある場合、負荷平均はコア数以上である必要があります。これよりもはるかに大きいことは、タスクをより多くのコンピューター/サーバーに分離した場合、より多くの作業をより迅速に行えることを示します。

可能な限り反応する(迅速に反応する)必要がある場合、負荷平均はコアの数よりも少ない快適なマージン(半分または3分の1など)である必要があります。

仮想化ゲスト(KVMなど)の場合、実際には同じホスト上の他のゲストとCPUを共有しているため、負荷平均は低いほど良いです。


私は、負荷平均に含まれている「I / Oを待っている」という、時にはスレッドを見て驚いたserverfault.com/a/524818/27813 ...それはそう
rogerdpack

@rodgerpackはい、D状態プロセスはLinuxの負荷平均に常に含まれます。はい、わかりにくいです。はい、負荷平均以外の指標を主に検討する必要があります。
クバンチク

2

負荷平均が0.00の場合、基本的にシステムがアイドル状態であり、測定された時間にわたってCPUに遅延、ストレス、またはボトルネックがないことを意味します。

CPUが非アクティブであることを意味するのではなく、プロセスがCPU時間を必要とする場合に待機がないことを意味します。

負荷(システム、ユーザーごと?)をどのように測定したかに依存する可能性があるため、投稿したものからさらに多くを言うのは困難です。

詳細と興味深い読み物については、

https://www.tecmint.com/understand-linux-load-averages-and-monitor-performance/

http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages

http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.