3장. PerformanceProfile [performance.openshift.io/v2]
- 설명
- PerformanceProfile은 performanceprofiles API 스키마입니다.
- 유형
-
object
3.1. 사양 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 유형 | 설명 |
|---|---|---|
|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 추가 정보: 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 주석을 사용할 때 IRQ의 부하 분산을 Pod별로 비활성화할 수 있습니다. 기본값은 "false"입니다. |
|
|
| HardwareTuning은 분리 및 예약된 cpus에 대한 CPU 주파수 세트를 정의합니다. |
|
|
| HugePages는 대규모 페이지 관련 매개변수 세트를 정의합니다. 여러 크기 값을 동시에 사용하여 대규모 페이지를 설정할 수 있습니다. 예를 들어 hugepages는 1G 및 2M로 설정할 수 있으며 성능 프로필 컨트롤러에 의해 두 값이 모두 노드에 설정됩니다. hugepages 기본 크기를 1G로 설정하면 노드에서 모든 2M 관련 폴더가 제거되며 노드에서 2M hugepages를 구성할 수 없습니다. |
|
|
| KernelPageSize는 커널 페이지 크기를 정의합니다. 4k는 기본값이며 64k는 aarch64에서만 지원됩니다. |
|
|
| MachineConfigLabel은 Operator가 생성하는 MachineConfig에 추가할 레이블을 정의합니다. 이 성능 프로필을 대상으로 하는 MachineConfigPool의 MachineConfigSelector에서 사용해야 합니다. 기본값은 "machineconfiguration.openshift.io/ROLE=<same ROLE as in NodeSelector label key>"입니다. |
|
|
| MachineConfigPoolSelector는 Operator가 생성한 KubeletConfig와 같은 리소스의 MachineConfigPoolSelector에서 사용할 MachineConfigPool 레이블을 정의합니다. 기본값은 "machineconfiguration.openshift.io/ROLE=<same ROLE as in NodeSelector label key>"입니다. |
|
|
| 네트워크는 일련의 네트워크 관련 기능을 정의합니다. |
|
|
| NodeSelector는 Operator가 생성한 Tuned와 같은 리소스의 NodeSelector에서 사용할 Node 레이블을 정의합니다. 이 성능 프로필을 대상으로 하는 MachineConfigPool의 NodeSelector에 있는 노드 레이블과 일치하지 않아도 됩니다. machineConfigLabels 또는 machineConfigPoolSelector가 설정되지 않은 경우 이전에 언급한 필드의 기본값을 계산할 수 있도록 특정 NodeSelector 형식 <domain>/<ROLE>: ""을 예상합니다. |
|
|
| NUMA에서 토폴로지 인식 유사성과 관련된 옵션 정의 |
|
|
| RealTimeKernel은 실시간 커널 관련 매개변수 세트를 정의합니다. 설정하지 않으면 RT 커널이 설치되지 않습니다. |
|
|
| WorkloadHints는 다양한 유형의 워크로드에 대한 팁을 정의합니다. 이를 통해 노드 상단에 적용해야 하는 정확한 tuned 및 kernel 인수 세트를 정의할 수 있습니다. |
3.1.2. .spec.cpu 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- CPU는 CPU 관련 매개변수 세트를 정의합니다.
- 유형
-
object - 필수 항목
-
격리됨 -
reserved
-
| 속성 | 유형 | 설명 |
|---|---|---|
|
|
| BalanceIsolated는 Isolated CPU 세트가 부하 분산 작업 로드에 적합한지 여부를 토글합니다. 이 옵션을 "false"로 설정하면 Isolated CPU 세트가 static이 됩니다. 즉, 워크로드가 여러 CPU에서 작동하려면 각 스레드를 특정 CPU에 명시적으로 할당해야 합니다. "true"로 설정하면 CPU 간에 워크로드의 균형을 조정할 수 있습니다. "false"로 설정하면 보장되는 워크로드에 대해 가장 예측 가능한 성능이 제공되지만 CPU 부하 분산의 복잡성을 애플리케이션에 부과합니다. 기본값은 "true"입니다. |
|
|
| Isolated는 애플리케이션 스레드에 가능한 한 많은 실행 시간을 제공하는 데 사용할 CPU 세트를 정의합니다. 즉 CPU에서 가능한 한 많은 외부 작업을 제거하는 것입니다. CPU 관리자는 예약된 CPU를 제외하고 워크로드를 실행할 모든 CPU를 선택할 수 있습니다. 워크로드가 분리된 CPU에서 실행되도록 하려면 다음을 수행합니다. 예약된 CPU와 분리된 CPU의 병합에는 모든 온라인 CPU 2가 포함되어야 합니다. isolated CPU 필드는 예약된 CPU에 대한 보완 필드여야 합니다. |
|
|
| 오프라인은 사용하지 않고 오프라인으로 설정되는 CPU 세트를 정의합니다. |
|
|
| reserved는 kubelet에서 시작한 컨테이너 워크로드에 사용할 CPU 세트를 정의합니다. |
|
|
| Shared는 해당 워크로드에서 이미 사용 중인 독점적이지 않은 추가 cpus가 필요한 보장된 워크로드 간에 공유되는 CPU 세트를 정의합니다. |
3.1.3. .spec.hardwareTuning 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- HardwareTuning은 분리 및 예약된 cpus에 대한 CPU 주파수 세트를 정의합니다.
- 유형
-
object
| 속성 | 유형 | 설명 |
|---|---|---|
|
|
| IsolatedCpuFreq는 분리된 cpus에서 설정할 최소 빈도를 정의합니다. |
|
|
| ReservedCpuFreq는 예약된 cpus에서 설정할 최대 빈도를 정의합니다. |
3.1.4. .spec.hugepages 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- HugePages는 대규모 페이지 관련 매개변수 세트를 정의합니다. 여러 크기 값을 동시에 사용하여 대규모 페이지를 설정할 수 있습니다. 예를 들어 hugepages는 1G 및 2M로 설정할 수 있으며 성능 프로필 컨트롤러에 의해 두 값이 모두 노드에 설정됩니다. hugepages 기본 크기를 1G로 설정하면 노드에서 모든 2M 관련 폴더가 제거되며 노드에서 2M hugepages를 구성할 수 없습니다.
- 유형
-
object
| 속성 | 유형 | 설명 |
|---|---|---|
|
|
| DefaultHugePagesSize는 커널 부팅 매개변수 아래에 대규모 페이지의 기본 크기를 정의합니다. |
|
|
| Pages는 부팅 시 할당할 대규모 페이지를 정의합니다. |
|
|
| HugePage는 할당된 특정 크기의 대규모 페이지 수를 정의합니다. |
3.1.5. .spec.hugepages.pages 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- Pages는 부팅 시 할당할 대규모 페이지를 정의합니다.
- 유형
-
array
3.1.6. .spec.hugepages.pages[] 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- HugePage는 할당된 특정 크기의 대규모 페이지 수를 정의합니다.
- 유형
-
object
| 속성 | 유형 | 설명 |
|---|---|---|
|
|
| Count는 대규모 페이지의 양을 정의하고 'hugepages' 커널 부팅 매개변수에 매핑합니다. |
|
|
| Node는 hugepages가 할당되는 NUMA 노드를 정의합니다. 지정하지 않으면 페이지가 NUMA 노드 간에 동일하게 할당됩니다. |
|
|
| size은 대규모 페이지 크기를 정의하고 'hugepagesz' 커널 부팅 매개변수에 매핑됩니다. |
3.1.7. .spec.net 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- 네트워크는 일련의 네트워크 관련 기능을 정의합니다.
- 유형
-
object
| 속성 | 유형 | 설명 |
|---|---|---|
|
|
| 장치에는 CPU.Reserved와 동일한 넷큐 수로 설정될 네트워크 장치 표현 목록이 포함되어 있습니다. 장치를 지정하지 않으면 기본값은 all devices입니다. |
|
|
| 장치는 장치 이름, 벤더 ID, 모델 ID, PCI 경로 및 MAC 주소와 같은 여러 옵션으로 네트워크 장치를 표시하는 방법을 정의합니다. |
|
|
| UserLevelNetworking이 활성화된 경우 - 모든 또는 지정된 네트워크 장치 대기열 크기를 예약된 CPU 양으로 설정합니다. 기본값은 "false"입니다. |
3.1.8. .spec.net.devices 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- 장치에는 CPU.Reserved와 동일한 넷큐 수로 설정될 네트워크 장치 표현 목록이 포함되어 있습니다. 장치를 지정하지 않으면 기본값은 all devices입니다.
- 유형
-
array
3.1.9. .spec.net.devices[] 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- 장치는 장치 이름, 벤더 ID, 모델 ID, PCI 경로 및 MAC 주소와 같은 여러 옵션으로 네트워크 장치를 표시하는 방법을 정의합니다.
- 유형
-
object
| 속성 | 유형 | 설명 |
|---|---|---|
|
|
| 네트워크 장치 ID(모델)는 16비트 16진수로 표시됩니다. |
|
|
| 일치해야 하는 네트워크 장치 이름입니다. 양수 또는 음수가 있는 쉘 스타일 와일드카드 구문을 사용합니다. |
|
|
| 네트워크 장치 벤더 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 및 kernel 인수 세트를 정의할 수 있습니다.
- 유형
-
object
| 속성 | 유형 | 설명 |
|---|---|---|
|
|
| HighPowerConsumption은 노드를 높은 전력 소비 모드로 구성해야 하는지를 정의합니다. 이 플래그는 전력 소비에 영향을 미치지만 CPU 대기 시간이 향상됩니다. 기본값은 false입니다. |
|
|
| MixedCpus를 사용하면 노드에서 mixed-cpu-node-plugin을 활성화합니다. 기본값은 false입니다. |
|
|
| PerPodPowerManagement는 Pod별 전원 관리에서 노드를 구성해야 하는지 여부를 정의합니다. PerPodPowerManagement 및 HighPowerConsumption 팁을 함께 활성화할 수 없습니다. 기본값은 false입니다. |
|
|
| RealTime은 실시간 워크로드에 대해 노드를 구성해야 하는지 여부를 정의합니다. 기본값은 true입니다. |
3.1.13. .status 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- PerformanceProfileStatus는 관찰되는 PerformanceProfile 상태를 정의합니다.
- 유형
-
object
| 속성 | 유형 | 설명 |
|---|---|---|
|
|
| Condition은 현재 상태에 대한 사용 가능한 최신 관찰을 나타냅니다. |
|
|
| Condition은 Operator의 조정 기능 상태를 나타냅니다. |
|
|
| RuntimeClass에는 Operator가 생성한 RuntimeClass 리소스의 이름이 포함됩니다. |
|
|
| Tuned는 이 Operator가 생성한 튜닝 값이 포함된 Tuned 사용자 정의 리소스 오브젝트를 가리킵니다. |
3.1.14. .status.conditions 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- Condition은 현재 상태에 대한 사용 가능한 최신 관찰을 나타냅니다.
- 유형
-
array
3.1.15. .status.conditions[] 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- Condition은 Operator의 조정 기능 상태를 나타냅니다.
- 유형
-
object - 필수 항목
-
status -
type
-
| 속성 | 유형 | 설명 |
|---|---|---|
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| ConditionType은 Operator의 조정 기능 상태입니다. |