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