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