kvm性能极致调优

虚拟机绑定 CCD0

在 Manjaro(或任意 Arch 系 Linux)中,如果你想把 AMD 9950X 的 CCD0(Core Complex Die 0)分配给虚拟机CCD1 留给物理机,你可以通过内核参数 isolcpusnohz_fullkvm 的 CPU pinning、QEMU 的 CPU 绑定等方式实现。


🧠 总体目标:

  • ✅ 虚拟机绑定 CCD0(Core 0~7)
  • ✅ 物理机只使用 CCD1(Core 8~15)

1️⃣ 查明 CPU 拓扑(确认哪些核心属于 CCD0 和 CCD1)

运行以下命令确认核对应的 CCD:

1
lscpu -p=CPU,CORE,SOCKET,NODE

典型输出例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# CPU,Core,Socket,Node

0,0,0,0
1,1,0,0
2,2,0,0
3,3,0,0
4,4,0,0
5,5,0,0
6,6,0,0
7,7,0,0
8,8,0,0
9,9,0,0
10,10,0,0
11,11,0,0
12,12,0,0
13,13,0,0
14,14,0,0
15,15,0,0
16,0,0,0
17,1,0,0
18,2,0,0
19,3,0,0
20,4,0,0
21,5,0,0
22,6,0,0
23,7,0,0
24,8,0,0
25,9,0,0
26,10,0,0
27,11,0,0
28,12,0,0
29,13,0,0
30,14,0,0
31,15,0,0

2️⃣ 设置 isolcpus(物理机隔离核心)

编辑你的 grub 配置:

1
sudo nano /etc/default/grub

找到:

1
isolcpus=0-7,16-23 nohz_full=0-7,16-23 rcu_nocbs=0-7,16-23 mitigations=off
  • isolcpus=0-7:隔离 CCD0 给 VM 用,host 不调度这些核
  • nohz_full=0-7:减少 tick 调度干扰
  • rcu_nocbs=0-7:RCU 回调不在这些核上执行,提高实时性
    mitigations=off 是 Linux 内核启动参数,用来关闭 CPU 安全漏洞的缓解机制(Mitigations),以换取更高的性能
1
sudo update-grub

重启系统:

1
sudo reboot