Linux

更改實時 Linux VM 上的 CPU 計數

  • March 27, 2019

是否可以在不先停止 Linux 的情況下更改 KVM 虛擬機上的 VCPU 數量?Linux核心要求為物理機器(在支持它的硬體上)添加和刪除CPU(核心中的CPU hotplug),但我在VM上找不到任何東西以及如何為正在執行的機器分配更多/更少的資源。

為了改變 VCPU 分配,你做

sudo virsh setvcpus [vm_name] [num_vcpus] --current

從機器內部,執行

sudo udevadm monitor -k

您會看到一系列類似於

KERNEL[836.518069] add      /devices/system/cpu/cpu4 (cpu)
KERNEL[836.518095] bind     /devices/system/cpu/cpu4 (cpu)
KERNEL[836.526936] add      /module/intel_rapl_perf (module)
KERNEL[836.534023] remove   /module/intel_rapl_perf (module)
KERNEL[836.561229] add      /module/intel_uncore (module)
KERNEL[836.568971] remove   /module/intel_uncore (module)
KERNEL[836.578821] add      /module/intel_cstate (module)
KERNEL[836.592990] remove   /module/intel_cstate (module)
KERNEL[836.603800] add      /module/intel_rapl (module)
KERNEL[836.604120] add      /devices/virtual/powercap/intel-rapl (powercap)
KERNEL[836.604967] remove   /devices/virtual/powercap/intel-rapl (powercap)
KERNEL[836.613034] remove   /module/intel_rapl (module)

可以,但最多只能達到虛擬機定義中的最大 vCPU 數量。增加最大數量需要關閉。

例如,此 VM 有兩個 vCPU,最大為 8。超過 8 個需要關閉。

 <vcpu placement='static' current='2'>8</vcpu>

引用自:https://unix.stackexchange.com/questions/508180