我们拥有相当规模的 vSphere“资产”,其中 80% 的 Windows/Linux 服务器已虚拟化,运行在六个数据中心。我面临的挑战之一是中长期容量规划,确保我有足够的资金投入年度资本支出预测,以确保为主机升级(通常是内存)、更多主机(硬件和 ESX 许可证)或最坏情况下的 SAN 扩展提供资金。
无论如何,直到最近,我都相当乐意接受 vCenter 的性能统计数据,认为它真正代表了正在发生的事情。查看统计数据时,我通常在集群级别工作,因为每个集群中的主机都具有相同的规格、升级等。
然而,我最近注意到一些让我有点烦躁的事情。我的一个集群有 200GHz 的 CPU“带宽”,其组成如下:
5 hosts x 2 sockets-per-host x 6 cores-per-socket x 3.33GHz per-core = 199.8GHz
这很好,vCenter 可以正确报告此值。但是,当您在 vCenter 中查看集群的 CPU 利用率,或使用 PowerCLI 的获取状态cmdlet 时,CPU 利用率有时会超过 300GHz。这会产生连锁反应,弄乱我的计算,因为利用率数字达到 150% (!)。现在,我已经很久没有做过 A 级数学了,但我不明白 CPU 的利用率怎么会达到 150%...
因此,我打电话给 VMware 支持部门。可笑的是,他们说我需要购买 vCenter Operations Manager (vCOPS) 才能完成我想做的事情。好吧,不用了,如果我有一些准确的统计数据,我可以自己做决策支持(抱歉,吐槽完毕)。
因此,我要求对方做出解释,支持人员表示,vCenter 中的数据基于使用平均值总和的“通用”计算。好吧,对数据样本进行平均是很正常的,也是可以接受的,但我仍然不明白如何能超过 100%。
所以,我一直在尝试自己解决这个问题,我想知道 Xeon 的超线程或“涡轮”功能是否影响了结果。然而,“涡轮”提升只是从 3.33GHz 到 3.6GHz,即:8%。
有什么线索吗?
答案1
这是哪里vCenter Operations Manager 能方便使用。不要低估它的实用性……它可能是一个比你更好的 DSS 平台 :) 但是,与大多数 VMware 环境一样,你会因为遇到 CPU 限制而长期耗尽 RAM 资源。在我规划其他大型集群时,我会根据 RAM 和存储需求确定大小,因为 CPU 从来都不是限制因素。这里使用的是哪些版本的 ESXi、vSphere 和许可证层?
对于您的主机,它们听起来像是 3.33GHz Westmere X5680 系统。您可以选择在运行这些系统时启用或禁用超线程。听起来这里还有其他因素在起作用。当 CPU 峰值达到 150% 时,其他服务器指标如何?
有免费版 vCenter Operations 可用。还有全功能版(60 天或 90 天)评估可用。这对于查明基础设施中的真正瓶颈非常有帮助……即使用于调整虚拟机大小和验证集群健康状况。
可能对您有影响的视图是“剩余时间”指标,它计算特定资源耗尽之前的剩余时间。
答案2
用专业术语来说,我在这里搞砸了。事实证明,就总 MHz 而言,vCenter 数据确实包括超线程。但是,我的电子表格(使用 PowerCLI 创建)没有获取“CPU 线程数”,因此只查看套接字(VMware 术语中的“包”)和核心。感谢您的上述贡献。