我担心将 CPU 核心数设置为奇数可能会降低性能或稳定性。 有哪些情况会出现这种情况?
答案1
关于稳定性:我想不出奇数比偶数更不稳定的任何原因。我在大学时做过一个实验,在虚拟机上运行了一个计算密集型多线程程序(用 C 语言编写),并将内核数从 1 改为 8,然后测量进程运行时间。结果是大多线性,只要进程配置为充分利用内核数。我想不出客户操作系统会出现问题的任何原因,任何客户进程也不应该出现问题,因为它们从客户操作系统获得处理器时间。
表现可能是轻微地如果坚持使用偶数,效果会更好,因为某些处理器架构设计为在两个核心之间共享缓存。因此,VM 使用的奇数核心必须与主机共享其缓存。但即使是这种理论也站不住脚,因为 VM 软件本身永远无法保证在时间片之间始终获得相同的核心和缓存。在这一点上,我们正在吹毛求疵。例如,如果您有一个 4 核主机,并且您无法决定是否为 VM 提供 2 个或 3 个核心,那么略微不太理想的奇数 3 仍将比 2 个 VM 运行得更快。在这个例子中,您不妨为 VM 分配 4 个核心。主机操作系统只会放弃它能够承受的时间片,因此只要您不同时在主机上运行大型进程,VM 就应该运行良好。