此外,vCPU的调度方式也十分灵活。它可以在一个或多个物理处理单元上执行,实现分时复用或空间复用物理处理单元的效果。同时,它也可以与物理处理单元建立一对一固定的映射关系,限制访问指定的物理处理单元。这种灵活的调度方式使得虚拟机系统能够更好地适应各种复杂的计算场景。
当需要为云服务器的计算能力设置上限、下限以及云服务器占用资源的优先级时,可以选择启用 CPU QoS,即对CPU做QoS(Quality of Service):
CPU预留:分配给该VM的最少CPU资源,即云服务器获得的最低计算能力。配置值为vCPU在竞争物理CPU资源时,至少占有物理CPU主频的大小,单位为MHz。例如,该规格对应的vCPU个数为2,若预留值配置为2000,则云服务器获得的计算能力不低于4000MHz。
CPU上限:分配虚拟机占用CPU资源的上限,即云服务器获得的最大计算能力。配置值为单个vCPU在竞争资源时最多占有单个物理CPU的比例。例如,配置为0.5时,表示该云服务器单个vCPU最多可占用单个物理CPU 50%的资源。
CPU份额:多个虚拟机在竞争CPU资源时,根据比例分配资源,按优先级有低、中、高三种。CPU份额只在各虚拟机竞争计算资源时发挥作用,如果没有竞争,有需求的虚拟机可以独占主机的物理CPU资源。例如,云服务器A的优先级为“中”,云服务器B的优先级为“低”,则在资源竞争时,云服务器A竞争获得的CPU资源约为云服务器B的两倍。
以一台24线程(24GHz)的单核物理机为例,按照vCPU数量计算公式,可分配的vCPU数量为1*1*24=24vCPU,如果我们负载三台虚拟机,在没有资源竞争的情况下,每台虚拟机使用的资源都是8Ghz(平均分配);如果资源发生抢占,每台虚拟机都分配了24个VCPU(可以分配给单台VM所在的物理CPU虚拟出来的最大VCPU个数,这时真实的物理CPU资源则不是根据VCPU个数来确定对应的使用资源,而是根据份额来分配),即按份额分配获得CPU资源。
总的来说,计算 vCPU 的关键在于了解底层硬件的规格,并根据工作负载和性能需求进行合理的分配。
vCPU在多个领域有广泛的应用场景。以下是一些主要的应用场景:
虚拟化环境:虚拟化软件可以将物理CPU的计算能力划分为多个vCPU,并为每个虚拟机分配一个或多个vCPU,从而实现多个虚拟机同时运行的功能。在虚拟化环境下,通过使用vCPU,可以有效地管理和利用物理服务器的资源,提高服务器的利用率,降低了IT成本。