次のハードウェアを使用して、サーバーのCPU負荷をプロットしようとしています:ProLiant DL360p Gen8(ProLiant DL360 G7でも同じ動作)。
マシンはVMWareESXi5.1を実行しています
CPUスパイクを作成するには、dd if=/dev/zero of=/dev/null
、そして私はvCenterに表示されたグラフに相関するスパイクを見ることができるので、CPUが過負荷になっていることを知っています。
ただし、このsnmpwalkを実行すると:
snmpwalk -v 1 -c ******** 192.168.MY_IP 1.3.6.1.2.1.25.3.3.1.2
次の結果を表示します。
iso.3.6.1.2.1.25.3.3.1.2.1 = INTEGER: 3
iso.3.6.1.2.1.25.3.3.1.2.2 = INTEGER: 2
iso.3.6.1.2.1.25.3.3.1.2.3 = INTEGER: 2
iso.3.6.1.2.1.25.3.3.1.2.4 = INTEGER: 3
適切なMIBを調べていませんか?これらに定数を掛けるべきですか?
ちなみに、HP Agentless Monitoringを使用すると、いくつかのcpu統計を取得できましたが、探しているものは取得できませんでした。少なくとも、 これらのMIB を介して何も見つかりませんでした。
stressユーティリティ を使用してLinuxで負荷を生成してください。それは非常にきめ細かく、あなたがしていることよりも理にかなっています。
私が見ているのは、4CPU仮想マシンでシングルスレッドI/O負荷を生成していることです。 vSphereクライアントから貼り付けたCPUグラフは、4つ仮想マシンに割り当てられたCPU。
stress (ほとんどのLinuxディストリビューションで利用可能)をダウンロードして、いくつかの特定のパラメーターを試してください...
たとえば、4CPU仮想マシンで以下を実行するだけです。
# stress -c 4
stress: info: [594013] dispatching hogs: 4 cpu, 0 io, 0 vm, 0 hdd
収量...
Vmwareはこの情報を収集しません。また、収集するための良い方法はありません。問題は、いつ尋ねるのかを知る方法がないことです-したがって、この作業を行うには、常に過去60秒間の平均を準備する必要があります。今すぐ質問してから1秒後に質問する可能性があるため、40秒前のCPU時間を両方の間隔に適切にカウントする必要があります。それは本当に醜く、複雑なことです。
これをサポートすると、SNMPエージェントがCPU使用率を絶えず調査し、すべて同時に実行されている複数の間隔を更新する必要があるため、コストが高くなります。