我想这个问题更偏向理论。我们有 48 个逻辑核心(启用 HT,24 个实际核心)的 ESXI 主机。我们运行 4 台机器,每台机器配备 8 个 vCpu。根据客户机(顶部)和主机(VSphere 监视器)指标,每台机器的 CPU 使用率为 75%。
重要的细节——这些机器的网络流量相对较大,每台机器接收 700Mb/s 的应用程序流量。
ESXI 是使用常规交换机的 vanilla,VM 不使用任何特殊的资源管理配置(共享、亲和性等)
但是,ESXI 作为主机似乎以 100% 的水平运行。这是怎么回事?所有机器仅占用 48 个逻辑 CPU 中的 32 个,即使占用率为 100%,再加上在 ESXI 部分添加几个 vCPus (?) 来处理流量,理论上我们如何才能达到 100% 的 CPU 主机使用率?
答案1
4 个虚拟机 * 8 个虚拟 CPU * 75% 负载 = 2400% = 24 个核心,100% 负载
您的主机并非订阅不足,而是已满载。
SMT 又名英特尔超线程,不会添加实际核心,只是每个 pCore 上有一个额外的执行线程来利用空闲功能单元。它不会神奇地使物理核心数量翻倍。
即当一个线程的逻辑核心利用率为 100% 时,该物理核心上的两个 SMT 核心都达到 100%。只有当第一个线程正在等待第二个线程不需要的某些资源时,后者才会真正运行。
答案2
首先,检查虚拟机的网络配置。限制或优化网络流量以减少 ESXi 主机上的负载。这可以通过实施带宽限制或调整网络设置以优先处理关键数据来实现。
其次,评估 ESXi 主机当前的硬件配置。如果有扩展空间,请考虑添加更多物理核心。这将为主机提供额外的处理能力,以更有效地处理网络流量的需求。
最后,评估正在使用的 ESXi 版本。升级到较新的版本通常可以带来性能改进和增强的功能,特别是在管理网络密集型工作负载方面。