---
title: 虚拟机配置调优
description: "虚拟机配置调优需要根据GPU和NUMA的对应关系进行。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2530/armnative/kunpengcpsvideo_04_0012.html
sourcePath: /source/zh/kunpengboostkithistory/2530/armnative/kunpengcpsvideo_04_0012.html
indexId: b7ce767f5b8dbf53ea011d91495d0760a4bfb68285cbb4ddb740f438d3d0da5e77
---
# 虚拟机配置调优

虚拟机配置调优需要根据GPU和NUMA的对应关系进行。

此小节4个虚拟机均需执行，本章节根据GPU与NUMA的对应关系示例vm0对应NUMA 1进行修改。请参见查询GPU卡PCIe节点信息查询GPU与NUMA的对应关系，请参见获取软件包获取虚拟机调优脚本。

1. 编辑虚拟机xml文件。

```
virsh edit vm0
```


2. 按“i”进入编辑模式，在</cputune>中添加如下图所示文本。设置虚拟机vCPU与宿主机的CPU映射关系。
  “cpuset”的值为绑定的宿主机CPU核ID，其中NUMA 0为0-79，NUMA 1为80-159，NUMA 2为160-239，NUMA 3为240-319。

  上述操作也可使用如下命令完成设置。 ./setup_vm.sh vm0 --cputune 80,159

3. 在</cputune>下方添加如下所示文本，设置虚拟机与宿主机NUMA的内存绑定。（此处示例为虚拟机绑定了NUMA 1。）

```
<numatune>
<memory mode='strict' nodeset='1'/>
</numatune>
```


  上述操作也可使用如下命令完成设置。 ./setup_vm.sh vm0 --numatune 1

4. 在</cputune>上方添加如下所示文本，绑定QEMU模拟器。

```
<emulatorpin cpuset='80-159' />
```


  上述操作也可使用如下命令完成设置。 ./setup_vm.sh vm0 --emulatorpin 80-159

5. 使用内存大页。在如图所示位置添加红框文本。

```
<memoryBacking>
<hugepages/>
</memoryBacking>
```


  上述操作也可使用如下命令完成设置。 ./setup_vm.sh vm0 --enable_hugepages

6. 使能CPU拓扑。
  找到“<cpu mode='host-passthrough' check='none'>”
  元素，补充并修改以下内容，修改示例如下图所示。

```
<cpu mode='host-passthrough' check='none'>
<topology sockets='1' dies='1' clusters='10' cores='4' threads='2'/>
</cpu>
```


7. 按“Esc”键退出编辑模式，输入:wq!并按“Enter”键保存并退出文件。
8. 启动虚拟机。
9. 虚拟机内部执行如下指令，回显0-7表示CPU拓扑生效。

```
cat /sys/devices/system/cpu/cpu0/topology/cluster_cpus_list
```


10. 执行如下指令使能cluster调度优化。

```
echo 1 > /proc/sys/kernel/sched_cluster
```


  每次虚拟机重启都需要执行该步骤操作使能cluster调度优化，建议将其配置在“~/.bashrc”等同类型文件中，确保每次重启后都会自动执行。
