검색

10.6. PolicyGenTemplates CR을 사용하여 전원 상태 구성

download PDF

대기 시간이 짧고 고성능 에지 배포를 위해 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.yamlPolicyGenTemplate CR을 기반으로 생성된 PerformanceProfile CR의 workloadHints 필드를 업데이트하여 전원 상태를 구성합니다.

다음과 같은 일반적인 사전 요구 사항은 세 가지 전원 상태를 모두 구성하는 데 적용됩니다.

사전 요구 사항

  • 사용자 지정 사이트 구성 데이터를 관리하는 Git 리포지토리를 생성했습니다. 리포지토리는 hub 클러스터에서 액세스할 수 있어야 하며 Argo CD의 소스 리포지토리로 정의해야 합니다.
  • " GitOps ZTP 사이트 구성 리포지토리 준비"에 설명된 절차를 수행했습니다.

10.6.1. PolicyGenTemplate CR을 사용하여 성능 모드 구성

이 예제에 따라 group-du-sno-ranGen.yamlPolicyGenTemplate CR을 기반으로 생성된 PerformanceProfile CR의 workloadHints 필드를 업데이트하여 성능 모드를 설정합니다.

성능 모드는 비교적 높은 전력 소비로 짧은 대기 시간을 제공합니다.

사전 요구 사항

  • "낮은 대기 시간과 고성능을 위해 호스트 펌웨어 구성"의 지침에 따라 성능 관련 설정으로 BIOS를 구성했습니다.

프로세스

  1. 다음과 같이 out/argocd/example/policygentemplates 에서 group-du-sno-ranGen.yaml 참조 파일에서 PerformanceProfilePolicyGenTemplate 항목을 업데이트합니다.

    - fileName: PerformanceProfile.yaml
      policyName: "config-policy"
      metadata:
        [...]
      spec:
        [...]
        workloadHints:
             realTime: true
             highPowerConsumption: false
             perPodPowerManagement: false
  2. Git에서 PolicyGenTemplate 변경 사항을 커밋한 다음 GitOps ZTP Argo CD 애플리케이션에서 모니터링하는 Git 리포지토리로 내보냅니다.

10.6.2. PolicyGenTemplate CR을 사용하여 고성능 모드 구성

다음 예제에서는 group-du-sno-ranGen.yamlPolicyGenTemplate CR을 기반으로 생성된 PerformanceProfile CR의 workloadHints 필드를 업데이트하여 고성능 모드를 설정합니다.

고성능 모드는 가장 높은 전력 소비에서 매우 짧은 대기 시간을 제공합니다.

사전 요구 사항

  • "낮은 대기 시간과 고성능을 위해 호스트 펌웨어 구성"의 지침에 따라 성능 관련 설정으로 BIOS를 구성했습니다.

프로세스

  1. 다음과 같이 out/argocd/example/policygentemplates 에서 group-du-sno-ranGen.yaml 참조 파일에서 PerformanceProfilePolicyGenTemplate 항목을 업데이트합니다.

    - fileName: PerformanceProfile.yaml
      policyName: "config-policy"
      metadata:
        [...]
      spec:
        [...]
        workloadHints:
             realTime: true
             highPowerConsumption: true
             perPodPowerManagement: false
  2. Git에서 PolicyGenTemplate 변경 사항을 커밋한 다음 GitOps ZTP Argo CD 애플리케이션에서 모니터링하는 Git 리포지토리로 내보냅니다.

10.6.3. PolicyGenTemplate CR을 사용하여 전원 저장 모드 구성

다음 예제에서는 group-du-sno-ranGen.yamlPolicyGenTemplate CR을 기반으로 생성된 PerformanceProfile CR의 workloadHints 필드를 업데이트하여 전원 저장 모드를 설정합니다.

절전 모드는 대기 시간이 증가하여 전력 소비를 줄입니다.

사전 요구 사항

  • BIOS에서 C-states 및 OS 제어 P-states를 활성화했습니다.

프로세스

  1. 다음과 같이 out/argocd/example/policygentemplates 에서 group-du-sno-ranGen.yaml 참조 파일에서 PerformanceProfilePolicyGenTemplate 항목을 업데이트합니다. 추가 커널 인수 오브젝트를 통해 전원 저장 모드에 대한 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에는 온디맨드전원 세이프가 포함됩니다.
  2. Git에서 PolicyGenTemplate 변경 사항을 커밋한 다음 GitOps ZTP Argo CD 애플리케이션에서 모니터링하는 Git 리포지토리로 내보냅니다.

검증

  1. 다음 명령을 사용하여 식별된 노드 목록에서 배포된 클러스터에서 작업자 노드를 선택합니다.

    $ oc get nodes
  2. 다음 명령을 사용하여 노드에 로그인합니다.

    $ oc debug node/<node-name>

    & lt;node-name >을 전원 상태를 확인할 노드의 이름으로 바꿉니다.

  3. 디버그 쉘 내에서 /host를 root 디렉터리로 설정합니다. 디버그 Pod는 Pod 내의 /host에 호스트의 루트 파일 시스템을 마운트합니다. root 디렉토리를 /host 로 변경하면 다음 예와 같이 호스트의 실행 경로에 포함된 바이너리를 실행할 수 있습니다.

    # chroot /host
  4. 다음 명령을 실행하여 적용된 전원 상태를 확인합니다.

    # 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 사용으로 전원 절약 모드"에 설명된 대로 전원 절감 모드를 구성했습니다.

프로세스

  1. group-du-sno-ranGen.yaml 참조 파일에서 TunedPerformancePatchPolicyGenTemplate 항목을 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_pctcpufreq 드라이버가 지원되는 최대 CPU 빈도의 백분율로 설정할 수 있는 최대 빈도를 제어합니다. 이 값은 모든 CPU에 적용됩니다. /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 에서 지원되는 최대 빈도를 확인할 수 있습니다. 시작점으로 모든 CPU를 모든 코어 frequency로 제한하는 백분율로 사용할 수 있습니다. 모든 코어의 frequency는 코어가 완전히 비어 있을 때 모든 코어가 실행되는 빈도입니다.
    참고

    전력 절감을 극대화하려면 더 낮은 가치를 설정하십시오. max_perf_pct 에 대한 더 낮은 값을 설정하면 최대 CPU 빈도가 제한되므로 전력 소비가 줄어들지만 잠재적으로 성능에 영향을 미칠 수 있습니다. 다양한 값을 실험하고 시스템의 성능 및 전력 소비를 모니터링하여 사용 사례에 가장 적합한 설정을 찾습니다.

  2. Git에서 PolicyGenTemplate 변경 사항을 커밋한 다음 GitOps ZTP Argo CD 애플리케이션에서 모니터링하는 Git 리포지토리로 내보냅니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.