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를 작성했습니다. 이제 이러한 성능 카운터를 다른 시스템 리소스와 연관시키는 세 가지 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입니다.