Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

8.2.3.3. 在引导时或运行时为客户机启用 1 GB 巨页

Red Hat Enterprise Linux 7 系统支持 2MB 和 1GB 巨页,它们可在引导时或运行时分配。

过程 8.2. 在引导时分配 1GB 巨页

  1. 要在引导时分配巨页大小,请使用以下命令来指定巨页数量。这个示例分配 4 个 1GB 巨页和 1024 2MB 巨页:
    'default_hugepagesz=1G hugepagesz=1G hugepages=4 hugepagesz=2M hugepages=1024'
    
    更改此命令行,以指定要在启动时分配的不同数量大页面。
    注意
    然后,在您在引导时分配 1GB 巨页时,还必须完成接下来的两个步骤。
  2. 在主机上挂载 2MB 和 1GB 巨页:
    # mkdir /dev/hugepages1G
    # mount -t hugetlbfs -o pagesize=1G none /dev/hugepages1G
    # mkdir /dev/hugepages2M
    # mount -t hugetlbfs -o pagesize=2M none /dev/hugepages2M
    
  3. 将以下几行添加到虚拟机 XML 配置的 memoryBacking 部分:
    <hugepages>
      <page size='1' unit='GiB'/>
    </hugepages>
    
  4. 重启 libvirtd 以在客户机上使用 1GB 巨页:
    # systemctl restart libvirtd
    

过程 8.3. 在运行时分配 1GB 巨页

1GB 巨页也可以在运行时分配。通过运行时分配,系统管理员可以选择从哪个 NUMA 节点分配这些页面。但是,由于内存碎片,运行时页面分配可能会比引导时间分配失败更容易。
  1. 要在运行时分配巨页的不同大小,请使用以下命令替换巨页数的值、NUMA 节点从中分配它们,以及巨页大小:
    # echo 4 > /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages
    # echo 1024 > /sys/devices/system/node/node3/hugepages/hugepages-2048kB/nr_hugepages
    
    这个示例从 node1 分配 4 个 1GB 巨页,并从 node3 分配 1024 2MB 巨页。
    可使用上述命令随时更改这些巨页设置,具体取决于主机系统上的可用内存量。
    注意
    在运行时,您第一次分配 1GB 巨页时,还必须完成接下来的两个步骤。
  2. 在主机上挂载 2MB 和 1GB 巨页:
    # mkdir /dev/hugepages1G
    # mount -t hugetlbfs -o pagesize=1G none /dev/hugepages1G
    # mkdir /dev/hugepages2M
    # mount -t hugetlbfs -o pagesize=2M none /dev/hugepages2M
    
  3. 将以下几行添加到虚拟机 XML 配置的 memoryBacking 部分:
    <hugepages>
      <page size='1' unit='GiB'/>
    </hugepages>
    
  4. 重启 libvirtd 以在客户机上使用 1GB 巨页:
    # systemctl restart libvirtd