中文
注册

虚拟化场景下如何开启并配置大页内存

问题现象描述

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

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

关键过程、根本原因分析

虚拟机在hostos上是一个进程,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大于虚拟机内存,以确保虚拟机可以启动。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词