文章目录
- 29 KVM管理系统资源-调整虚拟CPU绑定关系
- 29.1 概述
- 29.2 操作步骤
29 KVM管理系统资源-调整虚拟CPU绑定关系
29.1 概述
把虚拟机的vCPU绑定在物理CPU上,即vCPU只在绑定的物理CPU上调度,在特定场景下达到提升虚拟机性能的目的。比如在NUMA系统中,把vCPU绑定在同一个NUMA节点上,可以避免vCPU跨节点访问内存,避免影响虚拟机运行性能。如果未绑定,默认vCPU可在任何物理CPU上调度。具体的绑定策略由用户来决定。
29.2 操作步骤
通过virsh vcpupin命令可以调整vCPU和物理CPU的绑定关系。
-
查看虚拟机的当前vCPU绑定信息:
[root@superman-21 ~]# virsh vcpupin openEulerVM VCPU CPU Affinity ---------------------- 0 0-63 1 0-63 2 0-63 3 0-63 [root@superman-21 ~]#
这说明虚拟机_openEulerVM_的所有vCPU可以在主机的所有物理CPU上调度。
-
在线调整:修改处于running状态的虚拟机的当前vCPU绑定关系,使用带**–live**参数的vcpu vcpupin命令:
[root@superman-21 ~]# virsh vcpupin openEulerVM --live 0 2-3 [root@superman-21 ~]# virsh vcpupin openEulerVM VCPU CPU Affinity ---------------------- 0 2-3 1 0-63 2 0-63 3 0-63 [root@superman-21 ~]#
以上命令把虚拟机_open__Euler__VM_的vCPU0绑定到PCPU2、3上,即限制了vCPU0只在这两个物理CPU上调度。这一绑定关系的调整立即生效,但在虚拟机关机并重新启动后失效。
-
持久化调整:在libvirt内部配置中修改虚拟机的vCPU绑定关系,使用带**–config**参数的virsh vcpupin命令:
[root@superman-21 ~]# virsh vcpupin openEulerVM --config 0 0-3,^1 [root@superman-21 ~]# virsh vcpupin openEulerVM --config VCPU CPU Affinity ---------------------- 0 0,2-3 1 0-63 2 0-63 3 0-63 [root@superman-21 ~]#
以上命令把虚拟机_open__Euler__VM_的vCPU0绑定到物理CPU0、2、3上,即限制了vCPU0只在这三个物理CPU上调度。这一绑定关系的调整不会立即生效,在虚拟机下一次启动后才生效,并持久生效。
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!