ESXi虚拟机的 %steal 时间 与 CPU 就绪的关系

ESXi虚拟机的 %steal 时间 与 CPU 就绪的关系


概念解释

%steal
在top输出中,
steal时间表示虚拟CPU等待真实CPU的时间。
这通常发生在虚拟化环境中,
当虚拟机尝试在其物理主机上运行CPU密集型任务时,
可能会出现steal时间增加的情况。
这表示虚拟机无法立即获得所需的CPU资源,
需要等待其他虚拟机或系统进程释放CPU资源之后才能运行。
如果steal时间持续较高,可能会影响虚拟机的性能

ESXi CPU就绪时间
CPU就绪时间是指ESXi服务器上虚拟机所需的CPU资源可以立即可用的时间。
在ESXi主机上运行的虚拟机可能需要等待获取CPU资源,这会导致CPU就绪时间增加。
当CPU就绪时间较高时,表示虚拟机无法立即获得所需的CPU资源,
可能会影响虚拟机的性能。
通过监视CPU就绪时间,可以帮助管理员识别并解决ESXi主机上CPU资源分配和性能问题。

一个简单的监控

image


虚拟机内部的情况

06时10分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
06时20分01秒     all      0.72      0.00      0.50      0.97      0.00     97.81
06时30分01秒     all     11.24      0.00      1.26      0.63      0.00     86.86
06时40分01秒     all     14.95      0.00      1.51      2.94      0.00     80.60
06时50分01秒     all      9.71      0.00      1.08      0.03      0.00     89.18
07时00分01秒     all      9.59      0.00      1.02      0.00      0.00     89.40
07时10分01秒     all      9.15      0.00      1.19      0.00      0.00     89.66
07时20分01秒     all      9.36      0.04      1.42      0.02      0.00     89.16
07时30分01秒     all     10.01      0.00      1.16      0.00      0.00     88.83
07时40分01秒     all      9.14      0.00      1.20      0.00      0.00     89.66
07时50分01秒     all      9.19      0.00      1.17      0.00      0.00     89.64
平均时间:     all      9.31      0.00      1.15      0.46      0.00     89.08

发现问题

根据 vCenter 监控出来的CPU就绪时间
明显看到有大约 2.5% 的CPU时间其实属于就绪时间. 
但是看 sar 以及 top 都没有展示出这个时间来

所以感觉通过物理机的监控 能够看到 %steal 非常不准确. 
可能宿主机会故意的减少这个时间来避免服务基线的下降

关于 ESXi CPU就绪比率的计算

要在 vCenter 性能图表中的 CPU 就绪总量值与
esxtop中显示的 CPU 就绪百分比值之间进行转换,必须使用公式。

该公式要求您了解性能图表的默认更新间隔。每个图表的默认更新间隔如下:

实时:20 秒
过去一天:5 分钟(300 秒)
过去一周:30 分钟(1800 秒)
过去一个月:2 小时(7200 秒)
过去一年:1 天(86400 秒)
CPU 就绪百分比

要根据 CPU 就绪总量值计算 CPU 就绪百分比,请使用以下公式:
(CPU 总量值 /(<以秒为单位的图表默认更新间隔> * 1000))* 100 = CPU 就绪百分比
例如:

vCenter 中虚拟机的实时统计信息可能具有 1000 的平均 CPU 就绪总量值。
使用相应的值按照公式求出 CPU 就绪百分比。
(1000 /(20 秒 * 1000))* 100 = 5% CPU 就绪

CPU 就绪总量值
要将 CPU 就绪百分比转换为 CPU 就绪总量值,请使用以下公式进行反向计算:
(CPU 就绪百分比 / 100)* <图表默认更新间隔> * 1000 = CPU 总量值
例如:

如果虚拟机的 CPU 就绪百分比为 5,则其在实时性能图表上的 CPU 就绪总量值按如下计算:
(5 / 100) * 20 秒 * 1000 = 1000 CPU 就绪
注意:上述计算的结果是每个虚拟 CPU %RDY 时间的总和。
可以通过除以内核数大致估算出单个内核就绪时间。
但是,参考 vCPU 衡量指标本身会更准确。默认情况下,仅实时收集 vCPU 衡量指标。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章