第 3 章 PerformanceProfile [performance.openshift.io/v2]
- 描述
- PerformanceProfile 是 performanceprofiles API 的 Schema
- 类型
-
对象
3.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| PerformanceProfileSpec 定义 PerformanceProfile 的所需状态。 |
|
| PerformanceProfileStatus 定义 PerformanceProfile 的观察状态。 |
3.1.1. .spec
- 描述
- PerformanceProfileSpec 定义 PerformanceProfile 的所需状态。
- 类型
-
object
- 必填
-
cpu
-
nodeSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| 其他内核参数。 |
|
| CPU 定义一组与 CPU 相关的参数。 |
|
| globallyDisableIrqLoadBalancing 切换在 Isolated CPU 集合中是否禁用 IRQ 负载均衡。当选项设置为 "true" 时,它会禁用 Isolated CPU 集的 IRQs 负载均衡。将选项设置为 "false" 允许在所有 CPU 之间平衡 IRQ,但使用 irq-load-balancing.crio.io/cpu-quota.crio.io 注解时,可以禁用 IRQs 负载均衡。默认为 "false" |
|
| HardwareTuning 为 isolated 和 reserved cpus 定义一组 CPU 频率。 |
|
| hugepages 定义一组与巨页相关的参数。可以同时使用多个大小值同时设置巨页。例如,巨页可以使用 1G 和 2M 设置,两个值都由 Performance Profile Controller 在节点上设置。务必要注意,将 hugepages 默认大小设置为 1G 将从节点中删除所有 2M 相关文件夹,因此无法在节点下配置 2M 巨页。 |
|
| MachineConfigLabel 定义添加到 Operator 创建的 MachineConfig 的标签。它必须在以这个性能配置集为目标的 MachineConfigPool 的 MachineConfigSelector 中使用。默认为 "machineconfiguration.openshift.io/role=<same 角色,如 NodeSelector label key>" |
|
| MachineConfigPoolSelector 定义在 Operator 创建的 KubeletConfigs 等资源的 MachineConfigPoolSelector 中使用的 MachineConfigPool 标签。默认为 "machineconfiguration.openshift.io/role=<same 角色,如 NodeSelector label key>" |
|
| net 定义一组与网络相关的功能 |
|
| nodeSelector 定义在 Operator 创建的 Tuned 等资源的 NodeSelectors 中使用的 Node 标签。最有可能,但不一定与 MachineConfigPool 的 NodeSelector 中的节点标签匹配,后者以这个性能配置集为目标。如果没有设置 machineConfigLabels 或 machineConfigPoolSelector,我们会期望特定的 NodeSelector 格式 <domain>/<role>: "" 来计算前提到的字段的默认值。 |
|
| NUMA 定义与拓扑感知相关的选项 |
|
| realTimeKernel 定义一组实时内核相关参数。未设置时不会安装 RT 内核。 |
|
| workloadHints 为不同类型的工作负载定义提示。它允许定义应在节点之上应用的 tuned 和内核参数集。 |
3.1.2. .spec.cpu
- 描述
- CPU 定义一组与 CPU 相关的参数。
- 类型
-
object
- 必填
-
已隔离
-
reserved
-
属性 | 类型 | 描述 |
---|---|---|
|
| BalanceIsolated 切换切换 Isolated CPU 集是否有资格进行负载均衡工作负载。当此选项设置为 "false" 时,Isolated CPU 集为静态,这意味着工作负载必须明确将每个线程分配给特定的 cpu,才能在多个 CPU 之间工作。把它设置为 "true" 允许在 CPU 之间平衡工作负载。把它设置为 "false" 为保证的工作负载提供最可预测的性能,但它会将 cpu 负载均衡的复杂性卸载到应用程序。默认值为 "true" |
|
| isolated 定义一组 CPU,它们将用来为应用程序线程提供最可能执行时间,这意味着尽可能删除 CPU 的许多额外任务。务必要注意,CPU 管理器可以选择任何 CPU 来运行工作负载,但保留 CPU 除外。为确保工作负载在隔离的 CPU 上运行:1.保留 CPU 和隔离的 CPU 的 union 应该包括所有在线 CPU 2。隔离的 CPU 字段应当是保留的 CPU 字段的补充 |
|
| offline 定义一组未使用的 CPU 并离线设置 |
|
| reserved 定义一组不会用于 kubelet 启动的任何容器工作负载的 CPU。 |
|
| 共享定义一组在保证工作负载之间共享的 CPU,这些 CPU 需要额外的不是专用的 cpu,以及被这些工作负载已使用的专用资源。 |
3.1.3. .spec.hardwareTuning
- 描述
- HardwareTuning 为 isolated 和 reserved cpus 定义一组 CPU 频率。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| IsolatedCpuFreq 定义在隔离的 cpu 中设置的最小频率 |
|
| ReservedCpuFreq 定义在保留 cpus 中设置的最大频率 |
3.1.4. .spec.hugepages
- 描述
- hugepages 定义一组与巨页相关的参数。可以同时使用多个大小值同时设置巨页。例如,巨页可以使用 1G 和 2M 设置,两个值都由 Performance Profile Controller 在节点上设置。务必要注意,将 hugepages 默认大小设置为 1G 将从节点中删除所有 2M 相关文件夹,因此无法在节点下配置 2M 巨页。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| DefaultHugePagesSize 在内核引导参数下定义巨页默认大小。 |
|
| 页面定义我们要在引导时分配的巨页。 |
|
| 巨页定义了分配特定大小的巨页数量。 |
3.1.5. .spec.hugepages.pages
- 描述
- 页面定义我们要在引导时分配的巨页。
- 类型
-
数组
3.1.6. .spec.hugepages.pages[]
- 描述
- 巨页定义了分配特定大小的巨页数量。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| count 定义巨页量,映射到"hugepages"内核引导参数。 |
|
| 节点定义在 NUMA 节点之间分配巨页的 NUMA 节点(如果未指定),则会在 NUMA 节点之间平均分配页面 |
|
| 大小定义巨页大小,映射到 'hugepagesz' 内核引导参数。 |
3.1.7. .spec.net
- 描述
- net 定义一组与网络相关的功能
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| devices 包含网络设备表示列表,其网络队列数等于 CPU.Reserved。如果没有指定设备,则默认为所有设备。 |
|
| device 定义在多个选项中代表网络设备的方法:设备名称、厂商 ID、型号 ID、PCI 路径和 MAC 地址 |
|
| 启用 userLevelNetworking - 将 all 或指定的网络设备队列大小设置为保留 CPU 的数量。默认为 "false"。 |
3.1.8. .spec.net.devices
- 描述
- devices 包含网络设备表示列表,其网络队列数等于 CPU.Reserved。如果没有指定设备,则默认为所有设备。
- 类型
-
数组
3.1.9. .spec.net.devices[]
- 描述
- device 定义在多个选项中代表网络设备的方法:设备名称、厂商 ID、型号 ID、PCI 路径和 MAC 地址
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 网络设备 ID (model)被重新命名为 16 位十六进制数。 |
|
| 要匹配的网络设备名称。它使用 shell 风格的通配符语法,可以是正数或负数。 |
|
| 网络设备厂商 ID 被称为 16 位 Hexmadecimal 号码。 |
3.1.10. .spec.numa
- 描述
- NUMA 定义与拓扑感知相关的选项
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 当 TopologyManager 启用 Operator 时应用策略的名称,默认为 "best-effort" |
3.1.11. .spec.realTimeKernel
- 描述
- realTimeKernel 定义一组实时内核相关参数。未设置时不会安装 RT 内核。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| enabled 定义是否应安装实时内核软件包。默认为 "false" |
3.1.12. .spec.workloadHints
- 描述
- workloadHints 为不同类型的工作负载定义提示。它允许定义应在节点之上应用的 tuned 和内核参数集。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| highPowerConsumption 定义节点是否应该以高功耗模式配置。标志将影响功耗,但会提高 CPU 延迟。默认为false。 |
|
| MixedCpus 在节点上启用 mixed-cpu-node-plugin。默认为false。 |
|
| perPodPowerManagement 定义是否应在每个 pod 电源管理中配置节点。perPodPowerManagement 和 HighPowerConsumption hints 无法同时启用。默认为false。 |
|
| realtime 定义是否应为实时工作负载配置节点。默认值为 true。 |
3.1.13. .status
- 描述
- PerformanceProfileStatus 定义 PerformanceProfile 的观察状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 条件代表当前状态的最新可用影响。 |
|
| condition 代表 Operator 的协调功能的状态。 |
|
| RuntimeClass 包含 Operator 创建的 RuntimeClass 资源的名称。 |
|
| TuneD 指向 Tuned 自定义资源对象,其中包含此 Operator 生成的调优值。 |
3.1.14. .status.conditions
- 描述
- 条件代表当前状态的最新可用影响。
- 类型
-
array
3.1.15. .status.conditions[]
- 描述
- condition 代表 Operator 的协调功能的状态。
- 类型
-
object
- 必填
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| conditionType 是 Operator 的协调功能的状态。 |