3.2. 为实时虚拟化主机配置巨页


要进一步降低 RHEL 10 的虚拟机(VM)的延迟,请将主机设置为使用巨页。巨页可能会显著提高使用大量内存的应用程序的性能,通常是 RT 应用程序的情况。

有关巨页的更多信息,请参阅配置巨页

先决条件

流程

  1. 将默认巨页大小设置为 1 gibibyte。

    $ grubby --args "default_hugepagesz=1G" --update-kernel ALL
    Copy to Clipboard
  2. 在主机上保留巨页。

    $ echo <X> > /sys/devices/system/node/node_<Y>_/hugepages/<hugepages-size_dir>/nr-hugepages
    Copy to Clipboard

    在这个命令中,按如下所示替换变量:

    • < x>,带有要保留的巨页数。这个值取决于虚拟机数量及其具有的内存量。如果您正在运行单个虚拟机,请从两个 1GB 页面开始。
    • &lt;y> 带有固定实时 vCPU 的 NUMA 节点数量。
    • <hugepage-size_dir >,其巨页大小为 kB。例如,对于 2MB 巨页,这将是 hugepages-2048kB
    重要

    此命令临时设置巨页。因此,在启动任何实时虚拟机前,您必须在每个主机重启后使用该命令。要避免这种情况,请执行以下可选步骤,使巨页持久。

  3. 可选:如果要使巨页配置持久,还要执行以下操作:

    1. 创建名为 /usr/lib/systemd/system/hugetlb-gigantic-pages.service 的文件,其内容如下:

      [Unit]
      Description=HugeTLB Gigantic Pages Reservation
      DefaultDependencies=no
      Before=dev-hugepages.mount
      ConditionPathExists=/sys/devices/system/node
      ConditionKernelCommandLine=default_hugepagesz=1G
      
      [Service]
      Type=oneshot
      RemainAfterExit=yes
      ExecStart=/usr/lib/systemd/hugetlb-reserve-pages
      
      [Install]
      WantedBy=sysinit.target
      Copy to Clipboard
    2. 创建名为 /usr/lib/systemd/hugetlb-reserve-pages' 的文件,其内容如下:

      #!/bin/bash
      nodes_path=/sys/devices/system/node/
      if [ ! -d $nodes_path ]; then
      	echo "ERROR: $nodes_path does not exist"
      	exit 1
      fi
      
      reserve_pages()
      {
      	echo $1 > $nodes_path/$2/hugepages/hugepages-1048576kB/nr_hugepages
      }
      
      # This example reserves 2 1G pages on node0 and 1 1G page on node1. You
      # can modify it to your needs or add more lines to reserve memory in
      # other nodes. Don't forget to uncomment the lines, otherwise then won't
      # be executed.
      # reserve_pages 2 node0
      # reserve_pages 1 node1
      Copy to Clipboard
    3. 使用以下命令启用早期引导保留:

      $ chmod +x /usr/lib/systemd/hugetlb-reserve-pages
      $ sudo systemctl enable hugetlb-gigantic-pages
      $ sudo systemctl status hugetlb-gigantic-pages
      Copy to Clipboard
    4. 取消注释 /usr/lib/systemd/hugetlb-reserve-pages 底部两行,并根据您的巨页保留要求更新它们。
  4. 重启以应用所有配置更改。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat