Xen Linux ゲストの場合、%steal
時間は top やその他のユーティリティを通じて簡単に入手できます。
ESXi や Hyper-V などの非 Xen ハイパーバイザーを実行しているときに、Linux ゲスト内からこれと関連メトリックを取得することは可能ですか?
Windows ゲストの場合、VMware と Microsoft の両方が perfmon カウンターを提供します。例:
top
しかし、これらはCentos 6.4 のバニラでは公開されていないようです。
答え1
VMware ゲスト内でこれらの (およびその他の) パフォーマンス カウンターを取得する唯一の方法は、vmware-tools に同梱されている VMGuestLib SDK を使用することです。
私は、このライブラリ用の python ラッパー (python-vmguestlib) と、これらのカウンターにアクセスするためのツール vmguest-stats を作成しました。また、これらのパフォーマンス カウンターを他のシステム リソースと相関させる Dstat プラグインが 3 つあります。これは次のように簡単です。
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 あたりの盗まれたミリ秒数が得られます。
次に、盗まれたミリ秒を、盗まれた値が適用される実際のミリ秒(盗まれたミリ秒をカウントする間隔)で割ると、VM が盗まれた時間の割合(平均)が得られます。
したがって、計算は VM あたりの盗難率 = 盗難ミリ秒 / #VMsOn / 間隔ミリ秒になります。