在应用使用多颗vCPU的时候,如何分配每颗插槽的CPU数量和插槽数,可以使CPU的性能得到最优化。
收起在物理主机上,每个物理CPU均对应若干内存,CPU可读写所有内存的数据,但对本身对应的内存做读写操作时性能最佳。
基于此,虚拟机在使用多个CPU时,可通过设置虚拟机CPU插槽,使虚拟机的CPU平均地由多个物理CPU提供,此时对单个物理CPU的压力较小,同时也能达到更佳的内存读写性能。
虚拟机CPU插槽数量即指定了虚拟机的多个CPU可平均分布到多少个物理CPU上。因此,虚拟机CPU插槽的数量必须能整除虚拟机的CPU个数。
对于一台虚拟机来说,一般推荐CPU插槽数:每插槽的内核数=1:2,高计算力的虚拟机可能达到1:4甚至更高。
假设一个简单的场景:
环境中每台主机拥有4颗8核的物理CPU,总物理核数为32个。
一个未设置CPU插槽的虚拟机,CPU数量为8个,则可能由主机上一个物理CPU的8个内核组成虚拟机的8个虚拟CPU;或可能由一个物理CPU提供5个内核,另一个物理CPU提供3个内核,一同组成虚拟机的8个虚拟机CPU,等等。
另一个虚拟机设置了CPU插槽数量为4,此时虚拟机的8个CPU平均地由主机上的4颗物理CPU提供,每个物理CPU提供2个内核,达到了最佳的计算性能。