选择 CPU¶
计算节点中 CPU 的类型是一个非常重要的决定。您必须确保 CPU 通过英特尔芯片的 VT-x 和 AMD 芯片的 AMD-v 方式支持虚拟化。
提示
请查阅供应商文档以检查虚拟化支持。对于英特尔 CPU,请参阅 我的处理器是否支持英特尔®虚拟化技术?。对于 AMD CPU,请参阅 AMD 虚拟化。您的 CPU 可能支持虚拟化,但它可能被禁用。请查阅您的 BIOS 文档,了解如何启用 CPU 功能。
CPU 的核心数量也会影响您的决定。当前 CPU 通常最多可拥有 24 个核心。此外,如果英特尔 CPU 支持超线程技术,则这 24 个核心将翻倍至 48 个核心。如果您购买支持多个 CPU 的服务器,则核心数量将进一步增加。
截至 Kilo 版本,OpenStack 代码中已添加关键增强功能,以提高客户机性能。这些改进使 Compute 服务能够更深入地了解计算主机的物理布局,从而做出更明智的工作负载放置决策。管理员可以使用此功能来启用更明智的规划选择,以用于 NFV(网络功能虚拟化)和 HPC(高性能计算)等用例。
在选择 CPU 大小和类型时,考虑非统一内存访问 (NUMA) 非常重要,因为有些用例使用 NUMA pinning 来为操作系统进程保留主机核心。这些减少了工作负载可用的 CPU,并保护了操作系统。
提示
当为客户机请求 CPU pinning 时,假定没有超额承诺(或者,超额承诺率为 1.0)。当未为工作负载请求专用资源时,将应用正常的超额承诺率。
因此,我们建议使用主机聚合来分离不仅裸机主机,而且将提供需要专用资源的工作负载资源的那些主机。也就是说,当将工作负载置备到 NUMA 主机聚合时,NUMA 节点是随机选择的,并且 vCPU 可以在主机上的 NUMA 节点之间浮动。如果工作负载需要 SR-IOV 或 DPDK,则应将其分配到提供该功能的 NUMA 节点聚合。更重要的是,由于跨节点内存带宽有限,执行工作负载进程的工作负载或 vCPU 应位于同一 NUMA 节点上。在所有情况下,必须为 nova-scheduler 启用 NUMATopologyFilter。
此外,CPU 选择可能并非适用于所有企业的通用方案,而更多的是针对企业工作负载进行调整的 SKU 列表。
有关 NUMA 的更多信息,请参阅管理员指南中的 CPU 拓扑。
为了利用 Compute 服务中的这些新增强功能,计算主机必须使用支持 NUMA 的 CPU。
提示
多线程考虑因素
超线程技术是英特尔专有的同时多线程实现,用于提高其 CPU 上的并行化。您可能需要考虑启用超线程技术以提高多线程应用程序的性能。
是否应在 CPU 上启用超线程技术取决于您的用例。例如,在密集的计算环境中禁用超线程技术可能是有益的。我们建议使用本地工作负载进行性能测试,同时启用和禁用超线程技术,以确定哪种方法更适合您的案例。
在大多数情况下,根据工作负载的类型,超线程 CPU 可以提供 1.3 倍到 2.0 倍的性能提升,优于非超线程 CPU。