VMware および Hyper-V ハイパーバイザーで CPU %steal を測定

VMware および Hyper-V ハイパーバイザーで CPU %steal を測定

Xen Linuxゲストの場合、%stealtopやその他のユーティリティを使用して時間を簡単に取得できます。

ESXiやHyper-Vなどの非Xenハイパーバイザーを実行すると、Linuxゲストからこのメトリックと関連メトリックを取得できますか?

Windowsゲストの場合、VMwareとMicrosoftは両方ともperfmonカウンタを提供します。例: VMwareパフォーマンスモニタ

topしかし、Centos 6.4のデフォルトバージョンでは、これらの機能は公開されていないようです。

答え1

VMwareゲストからこれらのパフォーマンスカウンタを取得する唯一の方法は、vmware-toolsに含まれているVMGuestLib SDKを使用することです。

私はpython-vmguestlibと呼ばれるこのライブラリのPythonラッパーと、これらのカウンタにアクセスするためのツールvmguest-statsを作成しました。これで、これらのパフォーマンスカウンタを他のシステムリソースに関連付ける3つのDstatプラグインがあります。簡単です:

dstat -c –vm-cpu -m –vm-mem –vm-mem-adv

Pythonラッパー、vmguest-statsツール、Dstatは次の場所にあります。

フィードバックと改善を歓迎します!

答え2

稼働中のvSphereクラスターはオーバーロードされていますが、一般的なZabbix測定ツールはCPUタイムアウトを示していません。 Dagに感謝します。私は彼のテストプログラムをインポートし、以下のように盗用率を印刷するスクリプトを書いた。

#!/usr/bin/python

import sys, os, time
sys.path.append(os.path.join('/root/dagwieers/vmguestlib/'))

from vmguestlib import VMGuestLib

gl = VMGuestLib()

gl.UpdateInfo()
stolen_ms_1 = gl.GetCpuStolenMs()

time.sleep(1)

gl.UpdateInfo()
stolen_ms_2 = gl.GetCpuStolenMs()

# print percentage of stolen time
print '%d' % ((stolen_ms_2 - stolen_ms_1) / 10)

gl.CloseHandle()

思ったことを確認してくれました。私は定期的にCPU時間の75%を失っていました!

答え3

私が理解しているように、盗まれたミリ秒数を計算しています。

この時点で、あなたは泥棒の影響についてほとんど知りません。

盗まれたミリ秒数を仮想マシン数で割ると、仮想マシンごとに盗まれたミリ秒数が得られます。

次に、盗まれたミリ秒を盗まれた値が適用された実際のミリ秒(盗まれたミリ秒が計算された間隔)で割ることによって、VMが盗まれた時間の割合(平均)を取得できます。

したがって、計算は VM ごとの盗難率 = Stolen ms/#VMsOn/Interval ms です。

関連情報