17.8. 配置内存页面大小
通过配置内存页面大小,系统管理员可以在特定节点上实施更高效的内存管理,以适应工作负载要求。Node Tuning Operator 提供了使用性能配置集配置巨页和内核页面大小的方法。
17.8.1. 配置内核页面大小 复制链接链接已复制到粘贴板!
使用性能配置集中的 kernelPageSize 规格在特定节点上配置内核页面大小。为内存密集型高性能工作负载指定较大的内核页面大小。
对于具有 x86_64 或 AMD64 架构的节点,您只能为 kernelPageSize 规格指定 4k。对于具有 AArch64 架构的节点,您可以为 kernelPageSize 规格指定 4k 或 64k。在使用 64k 选项前,您必须禁用实时内核。默认值为 4k。
先决条件
-
使用具有
cluster-admin角色的用户访问集群。 -
安装 OpenShift CLI(
oc)。
流程
通过创建一个定义
PerformanceProfile资源的 YAML 文件,为要配置内核页面大小的目标节点创建一个性能配置集:pp-kernel-pages.yaml文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将性能配置集应用到集群:
oc create -f pp-kernel-pages.yaml
$ oc create -f pp-kernel-pages.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
performanceprofile.performance.openshift.io/example-performance-profile created
performanceprofile.performance.openshift.io/example-performance-profile createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,在应用性能配置集的节点上启动 debug 会话:
oc debug node/<node_name>
$ oc debug node/<node_name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<node_name>替换为节点的名称,并应用了性能配置集。
运行以下命令,验证内核页面大小是否已设置为您在性能配置集中指定的值:
getconf PAGESIZE
$ getconf PAGESIZECopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
65536
65536Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.8.2. 配置巨页 复制链接链接已复制到粘贴板!
节点必须预先分配在 OpenShift Container Platform 集群中使用的巨页。使用 Node Tuning Operator 在特定节点中分配巨页。
OpenShift Container Platform 提供了创建和分配巨页的方法。Node Tuning Operator 提供了一种更易于使用性能配置集的方法。
例如,在性能配置集的 hugepages pages 部分,您可以指定多个块的 size、count 以及可选的 node:
- 1
node是分配巨页的 NUMA 节点。如果省略了node,该页面将平均分布在所有 NUMA 节点中。
等待显示更新已完成的相关机器配置池状态。
这些是分配巨页的唯一配置步骤。
验证
要验证配置,请查看节点上的
/proc/meminfo文件:oc debug node/ip-10-0-141-105.ec2.internal
$ oc debug node/ip-10-0-141-105.ec2.internalCopy to Clipboard Copied! Toggle word wrap Toggle overflow grep -i huge /proc/meminfo
# grep -i huge /proc/meminfoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
oc describe报告新大小:oc describe node worker-0.ocp4poc.example.com | grep -i huge
$ oc describe node worker-0.ocp4poc.example.com | grep -i hugeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
hugepages-1g=true hugepages-###: ### hugepages-###: ###
hugepages-1g=true hugepages-###: ### hugepages-###: ###Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.8.3. 分配多个巨页大小 复制链接链接已复制到粘贴板!
您可以在同一容器下请求具有不同大小的巨页。这样,您可以定义由具有不同巨页大小的容器组成的更复杂的 pod。
例如,您可以把大小定义为 1G 和 2M,Node Tuning Operator 会在节点上配置这两个大小,如下所示: