将 NUMA 节点添加到 QEMU 虚拟机



截至目前,我有一个运行我的 VM 的批处理脚本,如下所示:

@echo off
set "QEMUDIR=%USERPROFILE%Documentsqemu"
set "QEMUBIN=qemu-system-x86_64.exe"
start "QEMU" %QEMUDIR%%QEMUBIN% ^
        -smp 2 -numa node,nodeid=0 -numa node,nodeid=1 ^
        -drive file=hda.img,index=0,media=disk,format=raw -m 2G  ^
        -L Bios -boot menu=on -rtc base=localtime,clock=host ^
        -parallel none -serial none -name centos -no-acpi -no-hpet ^
        -no-reboot -device usb-mouse -device usb-kbd -usb ^
        -device e1000,netdev=user.0 ^
        -netdev user,id=user.0,hostfwd=tcp::2222-:22

但是在创建 VM 后,它似乎忽略了我包含 2 个 NUMA 节点的参数。我运行命令 lscpu 并得到以下输出:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             2
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            6
Model:                 6
Model name:            QEMU Virtual CPU version 2.5+
Stepping:              3
CPU MHz:               3192.660
BogoMIPS:              0.02
Virtualization:        AMD-V
L1d cache:             64K
L1i cache:             64K
L2 cache:              512K
L3 cache:              16384K
NUMA node0 CPU(s):     0,1
Flags:                 fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca 
                       cmov pat mse36 clflush mmx fxsr sse sse2 syscall nx 
                       lm nopl pni cx16 hypervisor lahf_lm svm 3dnowprefetch 
                       vmmcall

我做错了什么?

-numa node,nodeid=0 -numa node,nodeid=1 不再是 QEMU 的有效命令选项。对于想要尝试使用 QEMU 进行 NUMA 仿真的任何人,请尝试以下操作:

-m 8G -smp cpus=4 
-object memory-backend-ram, size=4G,id=m0 
-object memory-backend-ram, size=4G,id=m1 
-numa node,memdev=m0,cpus=0-1,nodeid=0 
-numa node,memdev=m1,cpus=2-3,nodeid=1

最新更新