システムロード情報を取得するUnixコマンドラインコマンドは何ですか?

システムロード情報を取得するUnixコマンドラインコマンドは何ですか?

Linux または Unix オペレーティングシステムでは、System load次のテキストが表示されます。

これが何を意味するのか、そしてCLIコマンドを使用してシステム負荷%を抽出する方法を教えてください。

System load: 6.84

ベストアンサー1

Unixスタイルのシステムロード値に関するWikipediaの記事を参照してください。 https://en.wikipedia.org/wiki/Load_(計算)

要するに、もしこれはUnixスタイルのロード平均です。分けるこの値をシステムで使用可能なプロセッサコアの数で割ります。100を掛けるパーセント値を取得します。

実際、Unixスタイルのロード値は、特定の期間にわたって実際に実行+待機しているCPUプロセスの平均数を表します。通常、1分、5分、15分の時間枠を使用して3つの負荷値が報告されます。 Linuxでは、I / Oを待つプロセスも計算されますが、ほとんどのUnixシステムでは計算されません。

負荷値が使用可能なプロセッサコアの数より小さい場合、システムは平均ウィンドウ内で完全に使用されず、より多くのタスクを処理できることを意味します。ワークロードがプロセッサ処理能力を超えています。

ほとんどのUnixシリーズシステム(Linuxを含む)では、このuptimeコマンドを使用して次の出力を取得できます。

$ uptime
12:11:23 up  5:22,  1 user,  load average: 0.04, 0.05, 0.01

この単語の後には、load average:1、5、15分時間ウィンドウの負荷値が表示されます。

Linux/proc/loadavgではcat /proc/loadavg

Linuxでは、負荷平均を次の割合に変換できます。

#!/bin/sh
# uses the 5-minute load value
LOADVAL5=$(awk '{ print $2; }' < /proc/loadavg)
NUMCPUS=$(getconf _NPROCESSORS_ONLN)
echo "$LOADVAL5 * 100 / $NUMCPUS" | bc

もちろん、このスクリプトは最適化されていないため、繰り返し実行には適していません。監視システムを開発する場合は、負荷率を計算するために外部スクリプトを実行するのではなく、プログラムコードで計算を実行する必要があります。

おすすめ記事