第 14 章 创建性能配置集
了解 Performance Profile Creator(PPC),以及如何使用它来创建性能配置集。
目前,cgroup v2 不支持禁用 CPU 负载均衡。因此,如果您启用了 cgroup v2,则可能无法从性能配置集中获取所需的行为。如果您使用 executeace 配置集,则不建议启用 cgroup v2。
14.1. 关于性能配置集创建器 复制链接链接已复制到粘贴板!
Performance Profile Creator (PPC) 是一个命令行工具,由 Node Tuning Operator 提供,用于创建性能配置集。该工具消耗来自集群的 must-gather
数据以及几个用户提供的配置集参数。PPC 生成适合您的硬件和拓扑的性能配置集。
该工具使用以下方法之一运行:
-
调用
podman
- 调用一个打包程序脚本
14.1.1. 使用 must-gather 命令收集有关集群的数据 复制链接链接已复制到粘贴板!
Performance Profile Creator(PPC)工具需要 must-gather
数据。作为集群管理员,运行 must-gather
命令来捕获集群的信息。
在早期版本的 OpenShift Container Platform 中,Performance Addon Operator 为应用程序提供了自动、低延迟的性能调整。在 OpenShift Container Platform 4.11 及更新的版本中,这个功能是 Node Tuning Operator 的一部分。但是,在运行 must-gather
命令时,仍必须使用 performance-addon-operator-must-gather
镜像。
先决条件
-
使用具有
cluster-admin
角色的用户访问集群。 -
访问 Performance Addon Operator
must gather
镜像。 -
已安装 OpenShift CLI(
oc
)。
流程
可选:验证匹配的机器配置池是否存在标签:
oc describe mcp/worker-rt
$ oc describe mcp/worker-rt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Name: worker-rt Namespace: Labels: machineconfiguration.openshift.io/role=worker-rt
Name: worker-rt Namespace: Labels: machineconfiguration.openshift.io/role=worker-rt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果匹配的标签不存在,为与 MCP 名称匹配的机器配置池(MCP) 添加标签:
oc label mcp <mcp_name> machineconfiguration.openshift.io/role=<mcp_name>
$ oc label mcp <mcp_name> machineconfiguration.openshift.io/role=<mcp_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
进入存储
must-gather
数据的目录。 在集群中运行
must-gather
:oc adm must-gather --image=<PAO_must_gather_image> --dest-dir=<dir>
$ oc adm must-gather --image=<PAO_must_gather_image> --dest-dir=<dir>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意must-gather
命令必须使用performance-addon-operator-must-gather
镜像运行。输出可以被压缩(可选)。如果您正在运行性能配置集 Creator wrapper 脚本,则需要压缩输出。Example
oc adm must-gather --image=registry.redhat.io/openshift4/performance-addon-operator-must-gather-rhel8:v4.12 --dest-dir=<path_to_must-gather>/must-gather
$ oc adm must-gather --image=registry.redhat.io/openshift4/performance-addon-operator-must-gather-rhel8:v4.12 --dest-dir=<path_to_must-gather>/must-gather
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从
must-gather
目录创建一个压缩文件:tar cvaf must-gather.tar.gz must-gather/
$ tar cvaf must-gather.tar.gz must-gather/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.1.2. 使用 podman 运行 Performance Profile Creator 复制链接链接已复制到粘贴板!
作为集群管理员,您可以运行 podman
和 Performance Profile Creator 来创建性能配置集。
先决条件
-
使用具有
cluster-admin
角色的用户访问集群。 - 在裸机硬件上安装的集群。
-
安装了
podman
和 OpenShift CLI(oc
)的节点。 - 访问 Node Tuning Operator 镜像。
流程
检查机器配置池:
oc get mcp
$ oc get mcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-acd1358917e9f98cbdb599aea622d78b True False False 3 3 3 0 22h worker-cnf rendered-worker-cnf-1d871ac76e1951d32b2fe92369879826 False True False 2 1 1 0 22h
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-acd1358917e9f98cbdb599aea622d78b True False False 3 3 3 0 22h worker-cnf rendered-worker-cnf-1d871ac76e1951d32b2fe92369879826 False True False 2 1 1 0 22h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Podman 向
registry.redhat.io
进行身份验证:podman login registry.redhat.io
$ podman login registry.redhat.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Username: <username> Password: <password>
Username: <username> Password: <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:显示 PPC 工具的帮助信息:
podman run --rm --entrypoint performance-profile-creator registry.redhat.io/openshift4/ose-cluster-node-tuning-operator:v4.12 -h
$ podman run --rm --entrypoint performance-profile-creator registry.redhat.io/openshift4/ose-cluster-node-tuning-operator:v4.12 -h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以发现模式运行 Performance Profile Creator 工具:
注意发现模式使用
must-gather
的输出来检查您的集群。生成的输出包括以下信息:- 使用分配的 CPU ID 进行 NUMA 单元分区
- 是否启用超线程
使用此信息,您可以为提供给 Performance Profile Creator 工具的部分参数设置适当的值。
podman run --entrypoint performance-profile-creator -v <path_to_must-gather>/must-gather:/must-gather:z registry.redhat.io/openshift4/ose-cluster-node-tuning-operator:v4.12 --info log --must-gather-dir-path /must-gather
$ podman run --entrypoint performance-profile-creator -v <path_to_must-gather>/must-gather:/must-gather:z registry.redhat.io/openshift4/ose-cluster-node-tuning-operator:v4.12 --info log --must-gather-dir-path /must-gather
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此命令使用性能配置集创建器作为
podman
的新入口点。它将主机的must-gather
数据映射到容器镜像,并调用所需的用户提供的配置集参数来生成my-performance-profile.yaml
文件。-v
选项可以是到以下的任一路径:-
must-gather
输出目录 -
包含
must-gather
解压缩 tarball 的现有目录
info
选项要求值指定输出格式。可能的值有 log 和 JSON。JSON 格式被保留用于调试。运行
podman
:podman run --entrypoint performance-profile-creator -v /must-gather:/must-gather:z registry.redhat.io/openshift4/ose-cluster-node-tuning-operator:v4.12 --mcp-name=worker-cnf --reserved-cpu-count=4 --rt-kernel=true --split-reserved-cpus-across-numa=false --must-gather-dir-path /must-gather --power-consumption-mode=ultra-low-latency --offlined-cpu-count=6 > my-performance-profile.yaml
$ podman run --entrypoint performance-profile-creator -v /must-gather:/must-gather:z registry.redhat.io/openshift4/ose-cluster-node-tuning-operator:v4.12 --mcp-name=worker-cnf --reserved-cpu-count=4 --rt-kernel=true --split-reserved-cpus-across-numa=false --must-gather-dir-path /must-gather --power-consumption-mode=ultra-low-latency --offlined-cpu-count=6 > my-performance-profile.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意Performance Profile Creator 参数显示在 Performance Profile Creator 参数表中。需要以下参数:
-
reserved-cpu-count
-
mcp-name
-
rt-kernel
本例中的
mcp-name
参数根据oc get mcp
命令的输出设置为worker-cnf
。对于单节点 OpenShift,请使用--mcp-name=master
。-
查看创建的 YAML 文件:
cat my-performance-profile.yaml
$ cat my-performance-profile.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用生成的配置集:
oc apply -f my-performance-profile.yaml
$ oc apply -f my-performance-profile.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.1.2.1. 如何运行 podman 创建性能配置集 复制链接链接已复制到粘贴板!
以下示例演示了如何运行 podman
来创建具有 20 个保留 CPU 的性能配置集,这些 CPU 将在 NUMA 节点之间拆分。
节点硬件配置:
- 80 个 CPU
- 启用超线程
- 两个 NUMA 节点
- 编号为偶数的 CPU 在 NUMA 节点 0 上运行,编号为奇数的 CPU 在 NUMA 节点 1 上运行
运行 podman
以创建性能配置集:
podman run --entrypoint performance-profile-creator -v /must-gather:/must-gather:z registry.redhat.io/openshift4/ose-cluster-node-tuning-operator:v4.12 --mcp-name=worker-cnf --reserved-cpu-count=20 --rt-kernel=true --split-reserved-cpus-across-numa=true --must-gather-dir-path /must-gather > my-performance-profile.yaml
$ podman run --entrypoint performance-profile-creator -v /must-gather:/must-gather:z registry.redhat.io/openshift4/ose-cluster-node-tuning-operator:v4.12 --mcp-name=worker-cnf --reserved-cpu-count=20 --rt-kernel=true --split-reserved-cpus-across-numa=true --must-gather-dir-path /must-gather > my-performance-profile.yaml
创建的配置集在以下 YAML 中描述:
在这种情况下,在 NUMA 节点 0 上保留 10 个 CPU,NUMA 节点 1 上保留 10 个 CPU。
14.1.3. 运行性能配置集 Creator wrapper 脚本 复制链接链接已复制到粘贴板!
性能配置集打包程序脚本简化了性能配置文件 Creator(PPC)工具的运行。它隐藏了运行 podman
的复杂性并指定映射目录,它支持创建性能配置集。
先决条件
- 访问 Node Tuning Operator 镜像。
-
访问
must-gather
tarball。
流程
在本地机器上创建一个文件,例如
run-perf-profile-creator.sh
:vi run-perf-profile-creator.sh
$ vi run-perf-profile-creator.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将以下代码粘贴到文件中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为这个脚本中的每个人添加执行权限:
chmod a+x run-perf-profile-creator.sh
$ chmod a+x run-perf-profile-creator.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:显示
run-perf-profile-creator.sh
命令用法:./run-perf-profile-creator.sh -h
$ ./run-perf-profile-creator.sh -h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 预期输出
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意有两个参数类型:
-
wrapper 参数,即
-h
、-p
和-t
- PPC 参数
-
wrapper 参数,即
以发现模式运行性能配置集创建器工具:
注意发现模式使用
must-gather
的输出来检查您的集群。生成的输出包括以下信息:- 使用分配的 CPU ID 进行 NUMA 单元分区
- 是否启用超线程
使用此信息,您可以为提供给 Performance Profile Creator 工具的部分参数设置适当的值。
./run-perf-profile-creator.sh -t /must-gather/must-gather.tar.gz -- --info=log
$ ./run-perf-profile-creator.sh -t /must-gather/must-gather.tar.gz -- --info=log
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意info
选项要求值指定输出格式。可能的值有 log 和 JSON。JSON 格式被保留用于调试。检查机器配置池:
oc get mcp
$ oc get mcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-acd1358917e9f98cbdb599aea622d78b True False False 3 3 3 0 22h worker-cnf rendered-worker-cnf-1d871ac76e1951d32b2fe92369879826 False True False 2 1 1 0 22h
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-acd1358917e9f98cbdb599aea622d78b True False False 3 3 3 0 22h worker-cnf rendered-worker-cnf-1d871ac76e1951d32b2fe92369879826 False True False 2 1 1 0 22h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建性能配置集:
./run-perf-profile-creator.sh -t /must-gather/must-gather.tar.gz -- --mcp-name=worker-cnf --reserved-cpu-count=2 --rt-kernel=true > my-performance-profile.yaml
$ ./run-perf-profile-creator.sh -t /must-gather/must-gather.tar.gz -- --mcp-name=worker-cnf --reserved-cpu-count=2 --rt-kernel=true > my-performance-profile.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意Performance Profile Creator 参数显示在 Performance Profile Creator 参数表中。需要以下参数:
-
reserved-cpu-count
-
mcp-name
-
rt-kernel
本例中的
mcp-name
参数根据oc get mcp
命令的输出设置为worker-cnf
。对于单节点 OpenShift,请使用--mcp-name=master
。-
查看创建的 YAML 文件:
cat my-performance-profile.yaml
$ cat my-performance-profile.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用生成的配置集:
注意在应用配置集前安装 Node Tuning Operator。
oc apply -f my-performance-profile.yaml
$ oc apply -f my-performance-profile.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.1.4. Performance Profile Creator 参数 复制链接链接已复制到粘贴板!
参数 | 描述 |
---|---|
| 禁用超线程。
可能的值:
默认值: 警告
如果此参数设为 |
|
这会捕获集群信息,仅用于发现模式。发现模式还需要 可能的值:
默认: |
|
MCP 名称(如 |
| 必须收集目录路径。这个参数是必需的。
当用户使用 wrapper 脚本 |
| 离线 CPU 数量。 注意 这必须是一个大于 0 的自然数字。如果没有足够的逻辑处理器离线,则会记录错误消息。信息是: Error: failed to compute the reserved and isolated CPUs: please ensure that reserved-cpu-count plus offlined-cpu-count should be in the range [0,1]
Error: failed to compute the reserved and isolated CPUs: please specify the offlined CPU count in the range [0,1]
|
| 电源功耗模式。 可能的值:
默认: |
|
为每个 pod 电源管理启用。如果您将
可能的值:
默认值: |
|
要创建的性能配置集的名称。默认: |
| 保留 CPU 的数量。这个参数是必需的。 注意 这必须是一个自然数字。不允许使用 0 值。 |
| 启用实时内核。这个参数是必需的。
可能的值: |
| 将保留的 CPU 划分到 NUMA 节点。
可能的值:
默认值: |
| 要创建的性能配置集的 kubelet Topology Manager 策略。 可能的值:
默认: |
| 在启用了用户级别网络(DPDK)的情况下运行。
可能的值:
默认值: |