我使用 vSphere 来管理我的服务器。我试图评估主机上运行的虚拟机的性能,以便规划资源。

在 CPU 使用率方面,我发现两个指标很重要:Cpu Steal Time,由客户操作系统报告,并由节点导出器收集;Cpu Ready Time,由 vCenter 报告,显示在相应 VM 的监控仪表板中,并使用导出器收集。

对于某些虚拟机,我从这两个指标中得到了相互矛盾的结果。Cpu Steal Time始终为零,表明主机上没有过载和 CPU 争用,但Cpu Ready Time几乎总是高于 10%,有时甚至高于 40%,表明资源方面存在巨大问题。

所以,我很困惑,甚至不确定我对这些指标的理解是否正确。你如何解释这种情况?我是否处于高 CPU 争用情况并且必须减少负载,或者我可以增加负载?

PS 顺便说一下,这些是 Kubernetes 工作节点。


最佳答案
1

使用性能指标时要慎重思考。它们通常具有特定于平台的怪癖,或者只是存在缺陷。

CPU 就绪时间是来自 vmware(本例中为虚拟机管理程序)的指标。在中度至重度负载下,当 CPU 超额认购时,我不会对非零的 CPU 就绪时间感到惊讶。

才出现。或者

窃取时间是指客户虚拟机所需的、主机未提供的 CPU 时间量。当主机将此 CPU 时间分配给其他地方(例如分配给另一个客户虚拟机)时,就会发生窃取时间。

可以通过添加 VM 配置选项 stealclock.enable = “TRUE” 来启用窃取时间。运行硬件版本 13 或更高版本的 VM 支持此功能

。此“准备运行但未运行”指标是性能问题的更明显症状。90% CPU 繁忙表示运行利用率很高,但对最终用户的影响可能有限。10% CPU 窃取表示由于超额认购而几乎肯定会出现 CPU 不足的情况。如果再增加十分之一的 CPU 时间,您就可以完成更多的工作。