---
title: 虚拟化场景下如何开启并配置大页内存
description: "测试场景：虚拟机上部署MariaDB，远端压力服务器上部署Sysbench。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/troubleshooting/trouble/kunpengcpfs_09_0025.html
sourcePath: /source/zh/kunpengcpfs/troubleshooting/trouble/kunpengcpfs_09_0025.html
indexId: 334f96531b0c5a50a0559b5366586a0f557318162f7492740ae8c4236370dc7f71
---
# 虚拟化场景下如何开启并配置大页内存

#### 问题现象描述

测试场景：虚拟机上部署MariaDB，远端压力服务器上部署Sysbench。

通过使用Sysbench对MariaDB进行1比1混合读写操作，测试分为8/16/32/64/128/256/512线程。服务上虚拟化出两台4C24G虚拟机，虚拟化平台为KVM，两台虚拟机位于不同的片上，两个虚拟机使用不同网卡，Sysbench部署在一台远端服务器上，通过网线直连服务器上两块网卡。测试连线图如下：


#### 关键过程、根本原因分析

虚拟机在Host OS上是一个进程，4C24G规格表示虚拟机进程运行需要24G内存，使用大页内存可以减少内存页和管理虚拟地址，减少内存页面的换入换出，提高内存的整体性能。NFV商用场景下，通常也是会开启大页内存。


#### 结论、解决方案及效果

虚拟机需要大量的内存，开启大页内存可以提高TLB命中率，从而提高系统性能。

1. 查看OS使用的大页内存。

```
cat /proc/meminfo |grep Huge
```


2. 在虚拟机XML中增加如下配置以开启大页内存。

```
<memoryBacking>
<hugepages/>
</memoryBacking>
<numatune>
<memory mode='strict' nodeset='2'/>
</numatune>
```


  其中，nodeset='2'表示使用NUMA节点2的内存。

3. 在Host OS中配置大页内存。

```
echo 56 > /sys/devices/system/node/node2/hugepages/hugepages-524288kB/nr_hugepages
```


  其中，56表示大页的数量。请确保大页数*512MB大于虚拟机内存，以确保虚拟机可以启动。
