KVM 热添加cpu

KVM 怎么热添加VCPU ? 

当我们KVM 虚机上运行多个程序,cpu 负载不过来,那么怎么能热添加cpu 来分担负载? 

首先需要我们得创建虚机得时候cpu 得配置有设置maxvcpu 得参数,如果不指定maxvcpu 个数,那么我们最大得cpu 个数,实际为我们vcpu 个数。 这个概念和我们热添加内存时一个概念。 

只有配置maxvcpu 个数才能热添加cpu ,而且添加得cpu 个数不能大于maxvcpu 

如果我们没有配置 maxvcpu,那么 需要我们shutdown 虚机,手动修改虚机得xml 文件

先暂时关闭虚机

root@testyk:~# virsh destroy test-vm
Domain test-vm destroyed

编辑虚机得xml 文件

root@testyk:~# virsh  edit test-vm

Domain test-vm XML configuration edited.

编辑vcpu 得信息

root@testyk:~# virsh dumpxml test-vm | grep vcpu
<vcpu placement='static' current='1'>3</vcpu> 

current='2'    当前cpu 得数量时2个

>3<               当前maxvcpu 个数

重新定义加载xml 文件,如果不重新定义加载,KVM 虚机 重启后配置将会丢失

root@testyk:~# virsh define /etc/libvirt/qemu/test-vm.xml
Domain test-vm defined from /etc/libvirt/qemu/test-vm.xml

启动虚机

root@testyk:~# virsh start test-vm
Domain test-vm started

查看虚机信息

root@testyk:~# virsh dominfo test-vm
Id: 10
Name: test-vm
UUID: effdda5f-4938-7bbf-d04c-9ef5c771751a
OS Type: hvm
State: running
CPU(s): 1
CPU time: 12.6s
Max memory: 1740800 KiB
Used memory: 1228800 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: apparmor
Security DOI: 0
Security label: libvirt-effdda5f-4938-7bbf-d04c-9ef5c771751a (enforcing)

(如果虚机有设置maxvcpu 上面得可以不用执行可以直接以下热添加cpu 得命令)

热添加添加cpu个数,写入配置文件。永久保存 

root@testyk:~# virsh setvcpus test-vm 2 --live --config

检查虚机信息,cpu 个数增长

root@testyk:~# virsh dominfo test-vm
Id: 10
Name: test-vm
UUID: effdda5f-4938-7bbf-d04c-9ef5c771751a
OS Type: hvm
State: running
CPU(s): 2
CPU time: 207.6s
Max memory: 1740800 KiB
Used memory: 1228800 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: apparmor
Security DOI: 0
Security label: libvirt-effdda5f-4938-7bbf-d04c-9ef5c771751a (enforcing)

登陆kvm 虚机检查验证

root@ubuntu:~# lscpu | grep CPU
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 2
On-line CPU(s) list: 0
Off-line CPU(s) list: 1
CPU family: 6
CPU MHz: 2496.000
NUMA node0 CPU(s): 0

原文地址:https://www.cnblogs.com/yk0625/p/14028833.html