$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
在OpenShift Virtualization中,分配给虚拟机(VM)的计算资源由保证的CPU或分时CPU共享支持。
保证的CPU,也称为CPU预留,将CPU核心或线程专用于特定工作负载,使其对任何其他工作负载不可用。将保证的CPU分配给虚拟机可确保虚拟机将单独访问预留的物理CPU。为虚拟机启用专用资源以使用保证的CPU。
分时CPU将共享物理CPU上的时间片分配给每个工作负载。您可以在创建虚拟机时或虚拟机处于离线状态时指定时间片的大小。默认情况下,每个vCPU接收100毫秒或1/10秒的物理CPU时间。
CPU预留的类型取决于实例类型或虚拟机配置。
分时允许多个虚拟CPU (vCPU) 共享单个物理CPU。这称为CPU超额分配。保证的虚拟机无法超额分配。
配置CPU超额分配,以便在将CPU分配给虚拟机时优先考虑虚拟机密度而不是性能。通过更高的vCPU CPU超额分配,更多虚拟机可以适应给定节点。
CPU分配比率通过将vCPU映射到物理CPU的时间片来指定超额分配的程度。
例如,10:1的映射或比率通过使用时间片将10个虚拟CPU映射到1个物理CPU。
要更改映射到每个物理CPU的vCPU的默认数量,请在HyperConverged
CR中设置vmiCPUAllocationRatio
值。Pod CPU请求是通过将vCPU数量乘以CPU分配比率的倒数来计算的。例如,如果vmiCPUAllocationRatio
设置为10,则OpenShift Virtualization将为该虚拟机的Pod请求少10倍的CPU。
在HyperConverged
CR中设置vmiCPUAllocationRatio
值以定义节点CPU分配比率。
通过运行以下命令在默认编辑器中打开HyperConverged
CR
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
设置vmiCPUAllocationRatio
...
spec:
resourceRequirements:
vmiCPUAllocationRatio: 1 (1)
# ...
1 | 当vmiCPUAllocationRatio 设置为1 时,将为Pod请求最大数量的vCPU。 |