10.6. PolicyGenTemplates CR을 사용하여 전원 상태 구성
대기 시간이 짧고 고성능 에지 배포를 위해 C-state 및 P-state를 비활성화하거나 제한해야 합니다. 이 구성을 사용하면 CPU가 일정한 빈도로 실행되며 일반적으로 최대 turbo 빈도입니다. 이렇게 하면 CPU가 항상 최대 속도로 실행되므로 높은 성능과 대기 시간이 단축됩니다. 이로 인해 워크로드에 대한 최적의 대기 시간이 발생합니다. 그러나 이는 또한 가장 높은 전력 소비를 초래하며, 이는 모든 워크로드에 필요하지 않을 수 있습니다.
워크로드는 높은 성능 및 낮은 대기 시간을 위해 C-state 및 P-state 설정을 비활성화해야 하는 중요한 워크로드로 분류할 수 있지만 중요하지 않은 워크로드는 C-state 및 P-state 설정을 사용하여 일부 대기 시간 및 성능을 저하시킵니다. ZTP(ZTP)를 사용하여 다음 세 가지 전원 상태를 구성할 수 있습니다.
- 고성능 모드는 가장 높은 전력 소비에서 매우 낮은 대기 시간을 제공합니다.
- 성능 모드는 비교적 높은 전력 소비로 짧은 대기 시간을 제공합니다.
- 전력 절감은 대기 시간이 증가하여 전력 소비를 줄일 수 있습니다.
기본 구성은 대기 시간이 짧은 성능 모드입니다.
PolicyGenTemplate
CR(사용자 정의 리소스)을 사용하면 ztp-site-generate
컨테이너의 GitOps 플러그인과 함께 제공된 기본 소스 CR에 추가 구성 세부 정보를 오버레이할 수 있습니다.
group-du-sno-ranGen.yaml
의 PolicyGenTemplate
CR을 기반으로 생성된 PerformanceProfile
CR의 workloadHints
필드를 업데이트하여 전원 상태를 구성합니다.
다음과 같은 일반적인 사전 요구 사항은 세 가지 전원 상태를 모두 구성하는 데 적용됩니다.
사전 요구 사항
- 사용자 지정 사이트 구성 데이터를 관리하는 Git 리포지토리를 생성했습니다. 리포지토리는 hub 클러스터에서 액세스할 수 있어야 하며 Argo CD의 소스 리포지토리로 정의해야 합니다.
- " GitOps ZTP 사이트 구성 리포지토리 준비"에 설명된 절차를 수행했습니다.
10.6.1. PolicyGenTemplate CR을 사용하여 성능 모드 구성
이 예제에 따라 group-du-sno-ranGen.yaml
의 PolicyGenTemplate
CR을 기반으로 생성된 PerformanceProfile
CR의 workloadHints
필드를 업데이트하여 성능 모드를 설정합니다.
성능 모드는 비교적 높은 전력 소비로 짧은 대기 시간을 제공합니다.
사전 요구 사항
- "낮은 대기 시간과 고성능을 위해 호스트 펌웨어 구성"의 지침에 따라 성능 관련 설정으로 BIOS를 구성했습니다.
프로세스
다음과 같이
out/argocd/example/policygentemplates
에서group-du-sno-ranGen.yaml
참조 파일에서PerformanceProfile
의PolicyGenTemplate
항목을 업데이트합니다.- fileName: PerformanceProfile.yaml policyName: "config-policy" metadata: [...] spec: [...] workloadHints: realTime: true highPowerConsumption: false perPodPowerManagement: false
-
Git에서
PolicyGenTemplate
변경 사항을 커밋한 다음 GitOps ZTP Argo CD 애플리케이션에서 모니터링하는 Git 리포지토리로 내보냅니다.
10.6.2. PolicyGenTemplate CR을 사용하여 고성능 모드 구성
다음 예제에서는 group-du-sno-ranGen.yaml
의 PolicyGenTemplate
CR을 기반으로 생성된 PerformanceProfile
CR의 workloadHints
필드를 업데이트하여 고성능 모드를 설정합니다.
고성능 모드는 가장 높은 전력 소비에서 매우 짧은 대기 시간을 제공합니다.
사전 요구 사항
- "낮은 대기 시간과 고성능을 위해 호스트 펌웨어 구성"의 지침에 따라 성능 관련 설정으로 BIOS를 구성했습니다.
프로세스
다음과 같이
out/argocd/example/policygentemplates
에서group-du-sno-ranGen.yaml
참조 파일에서PerformanceProfile
의PolicyGenTemplate
항목을 업데이트합니다.- fileName: PerformanceProfile.yaml policyName: "config-policy" metadata: [...] spec: [...] workloadHints: realTime: true highPowerConsumption: true perPodPowerManagement: false
-
Git에서
PolicyGenTemplate
변경 사항을 커밋한 다음 GitOps ZTP Argo CD 애플리케이션에서 모니터링하는 Git 리포지토리로 내보냅니다.
10.6.3. PolicyGenTemplate CR을 사용하여 전원 저장 모드 구성
다음 예제에서는 group-du-sno-ranGen.yaml
의 PolicyGenTemplate
CR을 기반으로 생성된 PerformanceProfile
CR의 workloadHints
필드를 업데이트하여 전원 저장 모드를 설정합니다.
절전 모드는 대기 시간이 증가하여 전력 소비를 줄입니다.
사전 요구 사항
- BIOS에서 C-states 및 OS 제어 P-states를 활성화했습니다.
프로세스
다음과 같이
out/argocd/example/policygentemplates
에서group-du-sno-ranGen.yaml
참조 파일에서PerformanceProfile
의PolicyGenTemplate
항목을 업데이트합니다. 추가 커널 인수 오브젝트를 통해 전원 저장 모드에 대한 CPU governor를 구성하는 것이 좋습니다.- fileName: PerformanceProfile.yaml policyName: "config-policy" metadata: [...] spec: [...] workloadHints: realTime: true highPowerConsumption: false perPodPowerManagement: true [...] additionalKernelArgs: - [...] - "cpufreq.default_governor=schedutil" 1
- 1
- 그러나
schedutil
governor를 사용하는 것이 좋습니다. 그러나 사용 가능한 다른 governor에는온디맨드
및전원 세이프가 포함됩니다
.
-
Git에서
PolicyGenTemplate
변경 사항을 커밋한 다음 GitOps ZTP Argo CD 애플리케이션에서 모니터링하는 Git 리포지토리로 내보냅니다.
검증
다음 명령을 사용하여 식별된 노드 목록에서 배포된 클러스터에서 작업자 노드를 선택합니다.
$ oc get nodes
다음 명령을 사용하여 노드에 로그인합니다.
$ oc debug node/<node-name>
&
lt;node-name
>을 전원 상태를 확인할 노드의 이름으로 바꿉니다.디버그 쉘 내에서
/host
를 root 디렉터리로 설정합니다. 디버그 Pod는 Pod 내의/host
에 호스트의 루트 파일 시스템을 마운트합니다. root 디렉토리를/host
로 변경하면 다음 예와 같이 호스트의 실행 경로에 포함된 바이너리를 실행할 수 있습니다.# chroot /host
다음 명령을 실행하여 적용된 전원 상태를 확인합니다.
# cat /proc/cmdline
예상 출력
-
절전 모드의 경우
intel_pstate=passive
입니다.
10.6.4. 전원 비용 절감 극대화
최대 CPU 빈도를 제한하면 최대 전력 절감이 권장됩니다. 최대 CPU 빈도를 제한하지 않고 중요하지 않은 워크로드 CPU에서 C 상태를 활성화하면 중요한 CPU의 빈도를 높임으로써 전력 절감이 거의 발생하지 않습니다.
sysfs
플러그인 필드를 업데이트하여 전력 절감을 극대화하고 참조 구성에 대한 TunedPerformancePatch
CR의 max_perf_pct
에 대한 적절한 값을 설정합니다. group-du-sno-ranGen.yaml
을 기반으로 하는 이 예제에서는 최대 CPU 빈도를 제한하는 절차를 설명합니다.
사전 요구 사항
- " PolicyGenTemplate CR 사용으로 전원 절약 모드"에 설명된 대로 전원 절감 모드를 구성했습니다.
프로세스
group-du-sno-ranGen.yaml
참조 파일에서TunedPerformancePatch
의PolicyGenTemplate
항목을out/argocd/example/policygentemplates
에서 업데이트합니다. 전원 절감을 극대화하려면 다음 예와 같이max_perf_pct
를 추가합니다.- fileName: TunedPerformancePatch.yaml policyName: "config-policy" spec: profile: - name: performance-patch data: | [...] [sysfs] /sys/devices/system/cpu/intel_pstate/max_perf_pct=<x> 1
- 1
max_perf_pct
는cpufreq
드라이버가 지원되는 최대 CPU 빈도의 백분율로 설정할 수 있는 최대 빈도를 제어합니다. 이 값은 모든 CPU에 적용됩니다./sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
에서 지원되는 최대 빈도를 확인할 수 있습니다. 시작점으로 모든 CPU를 모든코어
frequency로 제한하는 백분율로 사용할 수 있습니다.모든 코어의
frequency는 코어가 완전히 비어 있을 때 모든 코어가 실행되는 빈도입니다.
참고전력 절감을 극대화하려면 더 낮은 가치를 설정하십시오.
max_perf_pct
에 대한 더 낮은 값을 설정하면 최대 CPU 빈도가 제한되므로 전력 소비가 줄어들지만 잠재적으로 성능에 영향을 미칠 수 있습니다. 다양한 값을 실험하고 시스템의 성능 및 전력 소비를 모니터링하여 사용 사례에 가장 적합한 설정을 찾습니다.-
Git에서
PolicyGenTemplate
변경 사항을 커밋한 다음 GitOps ZTP Argo CD 애플리케이션에서 모니터링하는 Git 리포지토리로 내보냅니다.