16.6. 성능 프로필을 사용하여 짧은 대기 시간을 실현하도록 노드 튜닝

성능 프로필을 사용하면 특정 머신 구성 풀에 속한 노드의 대기 시간 튜닝 측면을 제어할 수 있습니다. 설정을 지정하면 PerformanceProfile 오브젝트가 실제 노드 수준 튜닝을 수행하는 여러 오브젝트로 컴파일됩니다.

  • MachineConfig 파일은 노드를 조작합니다.
  • KubeletConfig 파일은 토폴로지 관리자, CPU 관리자 및 OpenShift Container Platform 노드를 구성합니다.
  • Tuned 프로필은 Node Tuning Operator를 구성합니다.

프로세스

  1. 클러스터를 준비합니다.
  2. 머신 구성 풀을 생성합니다.
  3. Performance Addon Operator를 설치합니다.
  4. 하드웨어 및 토폴로지에 적합한 성능 프로필을 생성합니다. 성능 프로필에서는 커널을 커널-rt로 업데이트할 것인지 여부, 대규모 페이지 할당, 운영 체제 하우스키핑 프로세스용으로 예약할 CPU, 워크로드 실행에 사용할 CPU를 지정할 수 있습니다.

    일반적인 성능 프로필은 다음과 같습니다.

    apiVersion: performance.openshift.io/v2
    kind: PerformanceProfile
    metadata:
     name: performance
    spec:
     cpu:
      isolated: "5-15"
      reserved: "0-4"
     hugepages:
      defaultHugepagesSize: "1G"
      pages:
      -size: "1G"
       count: 16
       node: 0
     realTimeKernel:
      enabled: true  1
     numa:  2
      topologyPolicy: "best-effort"
     nodeSelector:
      node-role.kubernetes.io/worker-cnf: ""
1
유효한 값은 true 또는 false입니다. true 값을 설정하면 노드에 실시간 커널이 설치됩니다.
2
이 필드를 사용하여 토폴로지 관리자 정책을 구성합니다. 유효한 값은 none(기본값), best-effort, restrictedsingle-numa-node입니다. 자세한 내용은 토폴로지 관리자 정책을 참조하십시오.

16.6.1. CPU 파티셔닝

하나의 NUMA 노드에서 운영 체제 하우스키핑 작업용으로 코어 또는 스레드를 예약하고 다른 NUMA 노드에 워크로드를 배치할 수 있습니다. 하우스키핑 프로세스가 동일한 CPU에서 실행되는 대기 시간에 민감한 프로세스에 영향을 미치는 방식으로 CPU를 사용할 수도 있기 때문입니다. 별도의 NUMA 노드에 워크로드를 유지하면 프로세스가 서로 간섭하는 것을 방지합니다. 또한, 각 NUMA 노드에는 공유되지 않는 자체 메모리 버스도 있습니다.

spec 섹션에서 다음과 같이 두 개의 CPU 그룹을 지정하십시오.

  • isolated - 대기 시간이 가장 짧습니다. 이 그룹의 프로세스에는 중단이 발생하지 않으므로 예를 들어 프로세스가 훨씬 더 높은 DPDK 제로 패킷 손실 대역폭에 도달할 수 있습니다.
  • reserved - 하우스키핑 CPU입니다. 예약된 그룹의 스레드는 사용되고 있는 상태인 경우가 많으므로 대기 시간에 민감한 애플리케이션은 격리된 그룹에서 실행되어야 합니다. QoS 클래스 Guaranteed가 할당된 Pod 생성을 참조하십시오.