ホームページ  >  記事  >  運用・保守  >  LinuxのCPU負荷とCPU使用率について

LinuxのCPU負荷とCPU使用率について

步履不停
步履不停オリジナル
2019-07-02 16:16:153210ブラウズ

LinuxのCPU負荷とCPU使用率について

CPU 負荷と CPU 使用率

これらは両方とも、マシンのビジー状態をある程度反映する可能性があります。

CPU 使用率は、CPU の現在のビジー状態を反映しています。高低の理由は、CPU 処理時間を占有しているプロセスが IO 待機状態にあるものの、まだ待ち状態から解放されていない可能性があるためです。

平均負荷 (ロードアベレージ) とは、一定時間内に CPU 時間を占有しているプロセスと CPU 時間を待っているプロセスの数を指します。ここでの CPU 時間を待っているプロセスとは、ウェイクアップを待っているプロセスを指します。待ち状態のものを除きます。

上記の分析から、マシンは CPU 使用率が低く負荷が高い状況にある可能性が高いことがわかります。したがって、マシンのビジー状態は両方の負荷を組み合わせたものである必要があります。実際の使用状況から、デュアルコア Zhiqiang 2.8GHZ、2G メモリ マシンでは、平均負荷が約 50 に達すると、CPU 使用率は 100% に近くなります (アプリケーションは大量の IO 操作を行います)。は非常にスムーズで、実際のアクセス遅延はそれほど高くありません。したがって、CPU がアイドル状態のときに、いかに IO レスポンスを改善するかが負荷を軽減する鍵となります。多くの人は、負荷が数十に達すると、マシンは非常にビジーになると考えています。CPU 使用率が比較的低い時点では、これは、CPU で処理されたプロセスが処理されると、待機中のプロセスもすぐに応答を受け取ることができるため、IO の読み取りおよび書き込み速度を最適化する必要があります。 CPU 使用率が常に 90% を超えている場合、たとえ平均負荷が 1 桁しかない場合でも (たとえば、特定のプロセスが計算を行っている場合)、マシ​​ンは実際にはすでにビジー状態になっています~

実際には、前回の記事では CPU 使用率が低く負荷が高いと書かれています 原因分析: CPU 使用率は低いですが負荷が非常に高いです 高負荷というのは IO

## の類推かもしれません

#CPU 負荷

システム負荷が高すぎるかどうかを判断するには、負荷平均の本当の意味を理解する必要があります。以下では、記事「Understanding Linux CPU Load」に基づいて、この問題を最も一般的な言語で説明してみます。

まず、最も単純なケースを想定します。コンピュータには CPU が 1 つだけあり、すべての操作はこの CPU によって完了する必要があります。
つまり、この CPU を橋として想像するとよいでしょう。橋には車線が 1 つしかなく、すべての車両はこの車線を通過しなければなりません。 (当然のことですが、この橋は一方通行にしか使用できません。)
システム負荷は 0 です。これは、橋上に車が 1 台もないことを意味します。

システム負荷は 0.5 です。これは、橋の半分に車両があることを意味します。

システム負荷は 1.0 です。これは、橋のすべてのセクションに車両があり、橋が「満杯」であることを意味します。ただし、この時点まで橋はまだ通行可能であったことに注意する必要があります。

システム負荷は 1.7 です。これは、車両が多すぎて、橋はすでに占有されており (100%)、後ろの橋に乗るのを待っている車両が橋上の車両の 70% であることを意味します。類推すると、システム負荷 2.0 は、橋の床版上の車両の数と同数の橋に乗るのを待っている車両があることを意味し、システム負荷 3.0 は、橋の上に上がるのを待っている車両の数の 2 倍があることを意味します。橋の床版には車両がいます。つまり、システム負荷が 1 より大きい場合、後続車両は待機する必要があり、システム負荷が大きくなるほど、橋を通過するまでの待機時間が長くなります。

CPU のシステム負荷は、基本的に上記の類似と同等です。橋の交通容量は CPU の最大作業負荷であり、橋上の車両は CPU による処理を待っているプロセスです。

CPU が 1 分あたり最大 100 プロセスを処理する場合、システム負荷 0.2 は、CPU がこの 1 分間に 20 プロセスのみを処理することを意味し、システム負荷 1.0 は、CPU がこの 1 分間にちょうど 100 プロセスを処理することを意味します。システム負荷は 1.7 です。これは、CPU によって処理されている 100 のプロセスに加えて、CPU の処理を​​待機しているキューに 70 のプロセスがあることを意味します。
コンピュータをスムーズに実行するには、システム負荷が 1.0 を超えてはならず、どのプロセスも待機する必要がなく、すべてのプロセスが最初に処理できるようにする必要があります。明らかに 1.0 は重要な値であり、この値を超えるとシステムが最適な状態にないため、介入が必要になります。

CPU 負荷 - マルチプロセッサ

上記では、コンピューターに CPU が 1 つしか搭載されていないと仮定しています。コンピューターに 2 つの CPU が搭載されている場合はどうなりますか? ###2 CPUが増えたということはコンピュータの処理能力が2倍になり、同時に処理できるプロセスの数も2倍になったことを意味します。

引き続き橋の例えを使用しますが、CPU が 2 つあるということは、橋に 2 つのレーンがあり、トラフィック容量が 2 倍になることを意味します。

つまり、2 CPU はシステム負荷が 2.0 に達する可能性があることを示しており、その時点で各 CPU のワークロードが 100% に達します。大まかに言えば、n 個の CPU を搭載したコンピューターの場合、許容可能な最大システム負荷は n.0 です。

CPU 負荷 - マルチコア プロセッサ

チップ メーカーは、多くの場合、マルチコア CPU と呼ばれる、CPU 内に複数の CPU コアを搭載しています。

システム負荷の点では、マルチコア CPU はマルチ CPU と同様の影響を及ぼします。そのため、システム負荷を考慮する場合は、このコンピュータに搭載されている CPU の数と各 CPU のコアの数を考慮する必要があります。次に、システム負荷をコアの総数で割ります。各コアの負荷が 1.0 を超えない限り、コンピュータは正常に動作しています。

コンピュータに搭載されている CPU コアの数はどうやってわかりますか?
「cat /proc/cpuinfo」コマンドでCPU情報を確認できます。 「grep -c 'モデル名' /proc/cpuinfo」コマンドは、CPU の合計コア数を直接返します。

システム負荷に関する経験則

システム負荷の理想的な値は 1.0 ですか?
必ずしもそうとは限りません。システム管理者は多少の余裕を持たせることが多いため、この値が 0.7 に達した場合は注意が必要です。経験則は次のとおりです。
システム負荷が常に 0.7 を超えている場合は、問題がどこにあるのか調査を開始し、状況の悪化を防ぐ必要があります。
システム負荷が 1.0 を超え続ける場合は、この値を下げる解決策を見つける必要があります。
システム負荷が 5.0 に達すると、システムに重大な問題が発生したか、長時間応答しなかったか、クラッシュ寸前であることを意味します。システムがこの値に達しないようにしてください。

私のマシンではコアが 24 個ありますが、適切な負荷はどのくらいでしょうか?

[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA]#grep 'モデル名' /proc/cpuinfo | wc -l24

答えは次のとおりです。

[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA]#echo "0.7*24" |bc16.8

#最適な観測期間

最後の質問「負荷平均」では、1 分間のシステム負荷、5 分間のシステム負荷、15 分間のシステム負荷の合計 3 つの平均値が返されます。どの値を参照すればよいですか?

1 分間のみのシステム負荷が 1.0 を超え、他の 2 つの期間が 1.0 未満の場合、これは一時的な現象にすぎず、問題は深刻ではないことを示します。
(CPU コアの数を調整した後) 15 分以内に平均システム負荷が 1.0 を超えた場合、問題が一時的な現象ではなく継続していることを示します。したがって、コンピュータの正常な動作の指標として、主に「15 分間のシステム負荷」を観察する必要があります。

その他の Linux 記事については、

Linux チュートリアル 列にアクセスして学習してください。

以上がLinuxのCPU負荷とCPU使用率についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。