第 3 章 PerformanceProfile [performance.openshift.io/v2]
- 描述
- PerformanceProfile 是 performanceprofiles API 的模式
- 类型
-
object
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 集的 IRQ 负载均衡。将 选项设置为 "false" 可允许在所有 CPU 间平衡 IRQ,但在使用 irq-load-balancing.crio.io/cpu-quota.crio.io 注解时,可以为每个 pod CPU 禁用 IRQ 负载均衡。默认值为 "false" |
|
|
| HardwareTuning 为隔离和保留的 cpus 定义一组 CPU 频率。 |
|
|
| HugePages 定义一组巨页相关参数。可以同时设置带有多个大小值的巨页。例如,巨页可以使用 1G 和 2M 设置,这两个值都由 Performance Profile Controller 在节点上设置。务必要注意,将巨页默认大小设置为 1G 将从节点中删除所有 2M 相关的文件夹,且无法在节点下配置 2M 巨页。 |
|
|
| KernelPageSize 定义内核页面大小。默认为 4k,只有 aarch64 支持 64k |
|
|
| MachineConfigLabel 定义要添加到 Operator 创建的 MachineConfig 中的标签。它必须在针对此性能配置集的 MachineConfigPool 的 MachineConfigSelector 中使用。默认为 "machineconfiguration.openshift.io/role=<与 NodeSelector label key> 中的相同角色" |
|
|
| MachineConfigPoolSelector 定义 MachineConfigPool 标签,用于 Operator 创建的 KubeletConfig 等资源的 MachineConfigPoolSelector。默认为 "machineconfiguration.openshift.io/role=<与 NodeSelector label key> 中的相同角色" |
|
|
| Net 定义一组与网络相关的功能 |
|
|
| NodeSelector 定义要在 Operator 创建的 Tuned 等资源的 NodeSelectors 中使用的 Node 标签。它很可能应该,但不必与针对此性能配置集的 MachineConfigPool 的 NodeSelector 中的节点标签匹配。如果没有设置 machineConfigLabels 或 machineConfigPoolSelector,我们希望使用特定的 NodeSelector 格式 <domain>/<role>: "",以便计算前面提到的字段的默认值。 |
|
|
| NUMA 定义与拓扑感知关联性相关的选项 |
|
|
| RealTimeKernel 定义一组实时内核相关参数。未设置时不会安装 RT 内核。 |
|
|
| WorkloadHints 为不同类型的工作负载定义 hint。它将允许定义应应用到节点上的一组精确的 tuned 和内核参数。 |
3.1.2. .spec.cpu 复制链接链接已复制到粘贴板!
- 描述
- CPU 定义一组与 CPU 相关的参数。
- 类型
-
object - 必填
-
隔离 -
保留
-
| 属性 | 类型 | 描述 |
|---|---|---|
|
|
| BalanceIsolated 切换隔离 CPU 集是否有资格进行负载均衡工作负载。当此选项设置为 "false" 时,隔离的 CPU 集将是静态的,这意味着工作负载必须明确将每个线程分配给特定的 cpu,才能在多个 CPU 间工作。将其设置为 "true" 可在 CPU 间平衡工作负载。将其设置为 "false" 可为有保证的工作负载提供最可预测的性能,但它会将 cpu 负载均衡的复杂性卸载到应用程序。默认值为 "true" |
|
|
| 隔离(Isolated)定义了一组 CPU,用于为应用程序线程提供尽可能多的执行时间,这意味着从 CPU 中删除尽可能多的无关任务。务必要注意,CPU 管理器可以选择除保留 CPU 以外的任何 CPU 来运行工作负载。为了保证您的工作负载将在隔离的 CPU 上运行:1.保留 CPU 和隔离 CPU 的组合应该包括所有在线 CPU 2。isolated CPUs 字段应该是保留 CPU 字段的补充 |
|
|
| Offline 定义一组未使用并设置为离线的 CPU |
|
|
| reserved 定义一组 CPU,它们不会用于 kubelet 启动的任何容器工作负载。 |
|
|
| Shared 定义了一组 CPU,这些 CPU 将在需要额外 cpus 的非专用工作负载间共享,以及这些工作负载已在使用的隔离专用资源。 |
3.1.3. .spec.hardwareTuning 复制链接链接已复制到粘贴板!
- 描述
- HardwareTuning 为隔离和保留的 cpus 定义一组 CPU 频率。
- 类型
-
object
| 属性 | 类型 | 描述 |
|---|---|---|
|
|
| IsolatedCpuFreq 定义在隔离的 cpus 间设置的最低频率 |
|
|
| ReservedCpuFreq 定义在保留 cpus 间设置的最大频率 |
3.1.4. .spec.hugepages 复制链接链接已复制到粘贴板!
- 描述
- HugePages 定义一组巨页相关参数。可以同时设置带有多个大小值的巨页。例如,巨页可以使用 1G 和 2M 设置,这两个值都由 Performance Profile Controller 在节点上设置。务必要注意,将巨页默认大小设置为 1G 将从节点中删除所有 2M 相关的文件夹,且无法在节点下配置 2M 巨页。
- 类型
-
object
| 属性 | 类型 | 描述 |
|---|---|---|
|
|
| DefaultHugePagesSize 在内核引导参数下定义巨页默认大小。 |
|
|
| Pages 定义了要在引导时分配的巨页。 |
|
|
| HugePage 定义分配的特定大小的巨页数。 |
3.1.5. .spec.hugepages.pages 复制链接链接已复制到粘贴板!
- 描述
- Pages 定义了要在引导时分配的巨页。
- 类型
-
数组
3.1.6. .spec.hugepages.pages[] 复制链接链接已复制到粘贴板!
- 描述
- HugePage 定义分配的特定大小的巨页数。
- 类型
-
object
| 属性 | 类型 | 描述 |
|---|---|---|
|
|
| Count 定义巨页数量,映射到 'hugepages' 内核引导参数。 |
|
|
| 节点定义要分配巨页的 NUMA 节点,如果未指定,则会在 NUMA 节点间平均分配页 |
|
|
| size 定义巨页大小,映射到 'hugepagesz' 内核引导参数。 |
3.1.7. .spec.net 复制链接链接已复制到粘贴板!
- 描述
- Net 定义一组与网络相关的功能
- 类型
-
object
| 属性 | 类型 | 描述 |
|---|---|---|
|
|
| Devices 包含网络设备表示列表,其设置的子网队列数等于 CPU.Reserved。如果没有指定设备,则默认为所有设备。 |
|
|
| Device 定义了在几个选项中代表网络设备的方法:设备名称、厂商 ID、型号 ID、PCI 路径和 MAC 地址 |
|
|
| 启用 UserLevelNetworking 时 - 将所有或指定的网络设备队列大小设置为保留的 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 位十六进制数字替代。 |
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 为不同类型的工作负载定义 hint。它将允许定义应应用到节点上的一组精确的 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 指向包含此 Operator 生成的调整值的 Tuned 自定义资源对象。 |
3.1.14. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
- 条件代表当前状态的最新可用观察。
- 类型
-
array
3.1.15. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- Condition 代表 Operator 协调功能的状态。
- 类型
-
object - 必填
-
status -
type
-
| 属性 | 类型 | 描述 |
|---|---|---|
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| ConditionType 是 Operator 协调功能的状态。 |