3.2. 为实时虚拟化主机配置巨页
要进一步降低 RHEL 10 的虚拟机(VM)的延迟,请将主机设置为使用巨页。巨页可能会显著提高使用大量内存的应用程序的性能,通常是 RT 应用程序的情况。
有关巨页的更多信息,请参阅配置巨页。
先决条件
- 您的主机满足 实时虚拟化的系统要求。
- 您已为实时虚拟机主机配置了 TuneD。具体步骤请参阅 为实时虚拟化主机配置 TuneD。
流程
将默认巨页大小设置为 1 gibibyte。
$ grubby --args "default_hugepagesz=1G" --update-kernel ALL在主机上保留巨页。
$ echo <X> > /sys/devices/system/node/node_<Y>_/hugepages/<hugepages-size_dir>/nr-hugepages在这个命令中,按如下所示替换变量:
- < x>,带有要保留的巨页数。这个值取决于虚拟机数量及其具有的内存量。如果您正在运行单个虚拟机,请从两个 1GB 页面开始。
- <y> 带有固定实时 vCPU 的 NUMA 节点数量。
-
<hugepage-size_dir >,其巨页大小为 kB。例如,对于 2MB 巨页,这将是
hugepages-2048kB。
重要此命令临时设置巨页。因此,在启动任何实时虚拟机前,您必须在每个主机重启后使用该命令。要避免这种情况,请执行以下可选步骤,使巨页持久。
可选:如果要使巨页配置持久,还要执行以下操作:
创建名为
/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创建名为
/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使用以下命令启用早期引导保留:
$ chmod +x /usr/lib/systemd/hugetlb-reserve-pages $ sudo systemctl enable hugetlb-gigantic-pages $ sudo systemctl status hugetlb-gigantic-pages-
取消注释
/usr/lib/systemd/hugetlb-reserve-pages底部两行,并根据您的巨页保留要求更新它们。
- 重启以应用所有配置更改。