暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

济南小老虎 2024-04-30
143

概念解释

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

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


一个简单的监控


虚拟机内部的情况

061001CPU     %user     %nice   %system   %iowait    %steal     %idle
062001all 0.72 0.00 0.50 0.97 0.00 97.81
063001all 11.24 0.00 1.26 0.63 0.00 86.86
064001all 14.95 0.00 1.51 2.94 0.00 80.60
065001all 9.71 0.00 1.08 0.03 0.00 89.18
070001all 9.59 0.00 1.02 0.00 0.00 89.40
071001all 9.15 0.00 1.19 0.00 0.00 89.66
072001all 9.36 0.04 1.42 0.02 0.00 89.16
073001all 10.01 0.00 1.16 0.00 0.00 88.83
074001all 9.14 0.00 1.20 0.00 0.00 89.66
075001all 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 就绪百分比。
100020 秒 * 1000))* 100 = 5% CPU 就绪

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

如果虚拟机的 CPU 就绪百分比为 5,则其在实时性能图表上的 CPU 就绪总量值按如下计算:
(5 100) * 20 秒 * 1000 = 1000 CPU 就绪
注意:上述计算的结果是每个虚拟 CPU %RDY 时间的总和。
可以通过除以内核数大致估算出单个内核就绪时间。
但是,参考 vCPU 衡量指标本身会更准确。默认情况下,仅实时收集 vCPU 衡量指标。


文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论