Xen Linuxゲストの場合、%steal
topやその他のユーティリティを使用して時間を簡単に取得できます。
ESXiやHyper-Vなどの非Xenハイパーバイザーを実行すると、Linuxゲストからこのメトリックと関連メトリックを取得できますか?
Windowsゲストの場合、VMwareとMicrosoftは両方ともperfmonカウンタを提供します。例:
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 です。