スチールタイム(st)を監視するためのツール


12

私たちは仮想の「専用」サーバーで実行しています。これは、理論上、サーバー上にいるのは私たちだけであることを意味するはずです。実際には…。

ここに画像の説明を入力してください

マシンを殺しているように見えますが、「スチール時間」は71%です。

負荷に関する統計情報を取得していますが、この統計情報がグラフに表示されないことに失望しました。これを監視し、支援できるツールはありますか?


追加情報:

4つのコア、モデルを実行しています:

# grep "model name" /proc/cpuinfo | sort -u
model name  : Intel(R) Core(TM)2 Duo CPU     E7500  @ 2.93GHz

1
バーチャル専用?XENの場合、VMで専用に使用するために専用コアを固定する必要があります。プロバイダーが不当な量でCPUをオーバーブッキングしているようです。彼はこれに何と言いますか?
ニルス

1
いくつのvCPUがあり、どのタイプのCPUが報告されていgrep "model name" /proc/cpuinfo|sort -uますか?これが本当に専用サーバーである場合、Dom0でCPU時間を消費しているものがあります。または、Dom0で使用可能なvCPUよりも多くのvCPUを提供しました。
ニルス

1
これが瞬間的な外れ値でない限り、あなたのispがあなたに嘘をついているように見え、実際、彼らはこのマシンで他のCPU重いVMを実行している、またはdom0が多くのCPU時間を浪費している非常に間違った設定があります。
psusi

1
SuSEは、Dom0専用に2つのコアを予約して、他のVMを煩わせることなくすべてのIO処理を行えるようにすることをお勧めします。私の目には、DomUsで盗まれた時間と大量のIOトラフィックがあるシステムにのみ必要です。あなたのプロバイダーが論理コアよりも多くのvCPUを割り当てたかどうかを知りたい-4つのvCPUを割り当て、Dom0で2つの論理CPUしか使用できない-これも「盗まれた」を説明します。
ニルス

1
この問題の根本的な原因は、ISPのVMが正しく構成されていないことが判明したことです。ゲストは、実際よりもコアが多いと言われていました。これは、スケジューリングに混乱を引き起こすように思われました。ISPはインテリジェントな技術サポートを提供できませんでしたが、/ procの奇数番号のコアを無効にすることで問題を「証明」することができました。以来、問題はありません。
mgjk 14

回答:


12

質問は明確に定義されていますが、環境、現在の監視方法、使用しているグラフ作成ツールに関する多くの情報を提供していません。ただし、SNMPがほぼ普遍的に使用されていることを考えると、SNMPを使用しており、少なくともある程度の知識があると仮定します。

(私が知る限り)CPUスチール時間は現在snmpdから入手できませんが、UCD-SNMP-MIB::extOutputオブジェクトとexecコマンドを使用して自分で延長することができます。

盗む時間を取得する最も簡単な方法(私が見つけた)はからiostatです。次の構成を使用する、スチール時間を取得できます。

$ iostat -c | awk 'NR==4 {print $5}'
0.00

したがって、snmpd.confに次を追加します。

exec cpu_steal_time /usr/bin/iostat -c | /usr/bin/awk 'NR==4 {print $5}'

(または、コマンドをラッパースクリプトに入れて、内部からラッパーを呼び出すことができます snmpd.conf。)

の各exec呼び出しにsnmpd.confは、1から始まるインデックスが付けられます。したがって、execステートメントが1つしかない場合は、ポーリングする必要がありますUCD-SNMP-MIB::extOutput.1。これが5番目のexecステートメントの場合、poll UCD-SNMP-MIB::extOutput.5など。

数値OIDでUCD-SNMP-MIB::extOutputある.1.3.6.1.4.1.2021.8.1.101あなたがそれは次のようになり、インデックス1でならそう.1.3.6.1.4.1.2021.8.1.101.1、そしてインデックス5は次のようになり.1.3.6.1.4.1.2021.8.1.101.5、など

次に、0〜100の範囲のゲージタイプのSNMPD OIDをポーリングするグラフを作成します。これにより、きれいなグラフが表示されます。


素晴らしい答え。これらの統計はどれくらいの頻度で収集されますか?ポーリング中だけですか、または外部ポーリングなしで値を記録するRMON-MIBのような方法はありますか?
ニルス

snmpdそのOIDがクエリされるたびにこれがプルされると思います。
バハマ

iostatがインストールされていない場合:top -bn1 | sed -nr '3s /.*,// gp'
davide 14年

9

sar -uあなたの場合に役立つかもしれません。sarは通常、sysstat -packageの一部です。


受け入れられる回答として複数の回答を設定できるといいのですが。両方の答えはとても役に立ちました:-)ありがとうございます!
mgjk

0

最も賛成の答えは素晴らしいですが、現時点では完全に機能していません。net -snmpexec呼び出し中にパイプを失うため、これは次のようになります。

extend-sh cpu_steal_time /usr/bin/iostat -c 1 1 | /usr/bin/awk '!/%user|Linux|^$/ {print $5}'

そして、結果は下に表示されnsExtendOutput1Tableます:

# snmpwalk localhost NET-SNMP-EXTEND-MIB::nsExtendOutput1Table
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cpu_steal_time" = STRING: 0.60
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."cpu_steal_time" = STRING: 0.60
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."cpu_steal_time" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendResult."cpu_steal_time" = INTEGER: 0

ここで、nsExtendOutput1Lineoidは.1.3.6.1.4.1.8072.1.3.2.3.1.1です:

snmpwalk localhost .1.3.6.1.4.1.8072.1.3.2.3.1.1
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."cpu_steal_time" = STRING: 0.60
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.