負荷平均
uptime
コマンドを入力すると、
ここにいくつかのパラメータがあり、次のように説明されます。
0:54
:現在の時刻;up 50 mins
: システムの実行時間。2 users
: ログインしているユーザーの数。load averages: 2.12 1.85 1.81
:平均荷重。
ここでの負荷平均とは何を意味しますか?
平均負荷とは、システムが単位時間当たりに実行可能で中断できない状態にあるプロセスの平均数、つまりアクティブなプロセスの平均数を指します。
コマンドを入力するps aux
と、プロセスの PID、CPU 使用率、プロセスのステータス、その他の情報が表示されます。
- 実行可能なプロセス: CPU を使用しているプロセス、または CPU を待機しているプロセス、つまり、STAT が上記の R (Running/Runnable) であるプロセスを指します。
- 中断不可能なプロセス: カーネル状態の主要なプロセスにあるプロセスであり、これらのプロセスは中断不可能です。たとえば、最も一般的なのは、ハードウェア デバイスの I/O 応答を待つことです。つまり、STAT は D (無中断スリープ。ディスク スリープ状態のプロセスとも呼ばれます。
平均負荷はどのくらい妥当ですか
理想的には、平均負荷は CPU の数と等しくなります。
まず、システムに搭載されている CPU の数を確認します。Linux システムは、top コマンドまたは /proc/cpuinfo ファイルを通じて CPU の数を取得できます。
このマシンで次のコマンドを入力して、基本情報を表示します。
sysctl hw.physicalcpu
: 物理 CPU の数を表示します。sysctl hw.logicalcpu
: 論理 CPU の数を表示します。system_profiler SPHardwareDataType
: ハードウェア情報の概要を表示すると、
平均負荷が理想に近く、3 つの値は 3 つの異なる時間間隔 (合計 1 分、5 分、15 分) の平均値であることがわかります。数値的な観点から見ると、システム負荷は比較的安定しています。
次のように、このコマンドを使用してtop
平均負荷の値を表示することもできます。
平均負荷が CPU 数の 70% を超えている場合は、高負荷の問題をトラブルシューティングする必要があります。負荷が高すぎると、プロセスの応答が遅くなり、サービスの通常の機能に影響を与える可能性があります。
平均負荷とCPU使用率
CPUを使用しているプロセスだけでなく、CPU待ちやI/O待ちのプロセスも含まれます。
CPU 使用率は、単位時間あたりの CPU ビジー状態の統計であり、平均負荷と正確に一致しない場合があります。
- CPU を大量に使用するプロセス: CPU を大量に使用すると、平均負荷が増加します。この 2 つは一貫しています。
- I/O 集中型のプロセス: I/O を待機すると平均負荷も増加しますが、CPU 使用率は必ずしも高いとは限りません。