2

現在の CPU 使用率 (%) と現在のネットワーク帯域幅の使用率を取得するには、いくつかのコマンド ライン スニペットが必要です。

top -bn1 | grep "Cpu(s)" 私が見つけたCPU使用率を取得するには

%Cpu(s): 12.3 us、3.6 sy、0.0 ni、83.7 id、0.3 wa、0.0 hi、0.0 si、0.0 st

このコマンドによって与えられる数値は決して変化しません。サーバーを高負荷に設定しようとしましたが、83.7% もアイドル状態になりました。

同様に、これらの値が変化していることがわかりましps aux|awk 'NR > 0 { s +=$3 }; END {print "cpu %",s}' た。見栄えは良いですが、次のような値が得られます

403.8

407.3

524.6

553.2

そして、これらの値が何を意味するのかはわかりません。コンピューターに 4 つのコアがあるため、400% の CPU 使用率はすべてのコアが 100% であることを意味すると予想されます。たとえ htop が平均 CPU 使用率が約 3 - 5% であると言ったとしても、

ネットワーク トラフィック モニタについては、使用可能なものは見つかりませんでした。別のプログラム/スクリプトでそれらを使用するには、kbps 単位で入力/出力する数値が必要です。

どうもありがとうございました :)

4

2 に答える 2

2

ネットワークの使用状況については、 から直接データをポーリングできます/proc/net/dev

于 2013-01-10T13:07:56.477 に答える
2

uptime過去 1、5、および 15 分間の稼働時間と負荷の平均を表示するコマンドを試してください。

帯域幅は、ファイル/sys/class/net/$1/statistics/rx_bytes/sys/class/net/$1/statistics/tx_bytes

現在の値を覚えておき、1 秒後にもう一度調べて、現在の帯域幅の使用状況を取得する必要があります。

負荷に関する一言: 多くの人は、CPU 使用率が有用な測定値であると考えています。それは正しくありません。多くのプロセスがデータ (ネットワーク、ディスクなど) を待機しているシステムを持つのは簡単ですが、待機しているため、CPU 負荷は低くなります。そのようなシステムで作業しようとすると、やはり遅く感じます。

したがって、システムの負荷は、システムがどれだけ「ビジー」であるかを示す優れた指標です。

atopまた、システムを常に監視し、過去に CPU を占有したプロセスなどの履歴データを提供するツールを確認する必要があります。(イントロ)

編集top -bn1 | grep常に同じ結果を出力する理由は、topそれ自体の起動を測定しているためです。モニターが提供する値を使い始める前に、モニターを長時間実行する必要があります。

于 2013-01-10T13:09:32.247 に答える