17.5. 인프라 및 애플리케이션 컨테이너의 CPU 제한


일반적인 하우스키핑 및 워크로드 작업은 대기 시간에 민감한 프로세스에 영향을 줄 수 있는 방식으로 CPU를 사용합니다. 기본적으로 컨테이너 런타임은 모든 온라인 CPU를 사용하여 모든 컨테이너를 함께 실행하므로 컨텍스트 전환과 지연 시간 급증이 발생할 수 있습니다. CPU를 분할하면 지연 시간에 민감한 프로세스를 서로 분리하여 노이즈가 많은 프로세스가 지연 시간에 민감한 프로세스를 방해하는 것을 방지할 수 있습니다. 다음 표에서는 노드 튜닝 연산자를 사용하여 노드를 튜닝한 후 CPU에서 프로세스가 실행되는 방식을 설명합니다.

Expand
표 17.4. 프로세스의 CPU 할당
프로세스 유형세부 정보

BurstableBestEffort 포드

저지연 작업 부하가 실행되는 경우를 제외한 모든 CPU에서 실행됩니다.

인프라 포드

저지연 작업 부하가 실행되는 경우를 제외한 모든 CPU에서 실행됩니다.

인터럽트

예약된 CPU로 리디렉션(OpenShift Container Platform 4.7 이상에서는 선택 사항)

커널 프로세스

예약된 CPU에 대한 핀

지연 시간에 민감한 워크로드 포드

격리된 풀에서 특정 독점 CPU 세트에 대한 핀

OS 프로세스/systemd 서비스

예약된 CPU에 대한 핀

모든 QoS 프로세스 유형( Burstable , BestEffort 또는 Guaranteed )의 포드에 대한 노드의 코어 할당 가능 용량은 격리된 풀의 용량과 같습니다. 예약된 풀의 용량은 클러스터와 운영 체제 정리 작업에 사용할 수 있도록 노드의 총 코어 용량에서 제거됩니다.

예시 1

노드에는 100개의 코어 용량이 있습니다. 클러스터 관리자는 성능 프로필을 사용하여 격리된 풀에 50개의 코어를 할당하고, 예약된 풀에 50개의 코어를 할당합니다. 클러스터 관리자는 QoS 보장 포드에 25개의 코어를 할당하고 BestEffort 또는 Burstable 포드에 25개의 코어를 할당합니다. 이는 격리된 풀의 용량과 일치합니다.

예시 2

노드에는 100개의 코어 용량이 있습니다. 클러스터 관리자는 성능 프로필을 사용하여 격리된 풀에 50개의 코어를 할당하고, 예약된 풀에 50개의 코어를 할당합니다. 클러스터 관리자는 QoS 보장된 Pod에 50개의 코어를 할당하고 BestEffort 또는 Burstable Pod의 코어 1개를 할당합니다. 이는 격리된 풀의 용량보다 코어 1개를 초과합니다. CPU 용량이 부족하여 Pod 스케줄링이 실패합니다.

사용할 정확한 파티셔닝 패턴은 하드웨어, 작업 부하 특성, 예상 시스템 부하와 같은 여러 요인에 따라 달라집니다. 일부 샘플 사용 사례는 다음과 같습니다.

  • 지연 시간에 민감한 워크로드가 네트워크 인터페이스 컨트롤러(NIC)와 같은 특정 하드웨어를 사용하는 경우, 격리된 풀의 CPU가 이 하드웨어에 최대한 가깝게 위치하는지 확인하세요. 최소한 동일한 NUMA(Non-Uniform Memory Access) 노드에 작업 부하를 배치해야 합니다.
  • 예약된 풀은 모든 인터럽트를 처리하는 데 사용됩니다. 시스템 네트워킹에 의존하는 경우 모든 수신 패킷 인터럽트를 처리할 수 있을 만큼 충분한 크기의 예비 풀을 할당합니다. 4.19 및 이후 버전에서는 워크로드를 선택적으로 중요함으로 표시할 수 있습니다.

예약된 파티션과 격리된 파티션에 어떤 특정 CPU를 사용해야 할지 결정하려면 세부적인 분석과 측정이 필요합니다. 장치와 메모리의 NUMA 친화성과 같은 요소가 역할을 합니다. 선택은 작업 아키텍처와 특정 사용 사례에 따라서도 달라집니다.

중요

예약된 CPU 풀과 격리된 CPU 풀은 겹치지 않아야 하며, 작업자 노드에서 사용 가능한 모든 코어에 걸쳐 있어야 합니다.

하우스키핑 작업과 작업 부하가 서로 간섭하지 않도록 하려면 성능 프로필의 사양 섹션에서 두 그룹의 CPU를 지정하세요.

  • isolated - 애플리케이션 컨테이너 워크로드에 대한 CPU를 지정합니다. 이러한 CPU는 대기 시간이 가장 짧습니다. 이 그룹의 프로세스에는 중단이 발생하지 않으므로 예를 들어 프로세스가 훨씬 더 높은 DPDK 제로 패킷 손실 대역폭에 도달할 수 있습니다.
  • 예약됨 - 클러스터 및 운영 체제 정리 작업에 필요한 CPU를 지정합니다. 예약된 그룹의 스레드는 종종 바쁘다. 예약된 그룹에서 대기 시간에 민감한 애플리케이션을 실행하지 마십시오. 지연 시간에 민감한 애플리케이션은 격리된 그룹에서 실행됩니다.

프로세스

  1. 해당 환경의 하드웨어와 토폴로지에 적합한 성능 프로필을 만듭니다.
  2. 인프라 및 애플리케이션 컨테이너에 대해 reservedisolated하려는 CPU와 함께 예약 및 격리된 매개변수를 추가합니다.

    apiVersion: performance.openshift.io/v2
    kind: PerformanceProfile
    metadata:
      name: infra-cpus
    spec:
      cpu:
        reserved: "0-4,9" 
    1
    
        isolated: "5-8" 
    2
    
      nodeSelector: 
    3
    
        node-role.kubernetes.io/worker: ""
    Copy to Clipboard Toggle word wrap
    1
    클러스터 및 운영 체제 하우스키핑 작업을 수행하기 위해 인프라 컨테이너의 CPU를 지정합니다.
    2
    애플리케이션 컨테이너가 워크로드를 실행하는 CPU를 지정합니다.
    3
    선택 사항: 노드 선택기를 지정하여 특정 노드에 성능 프로파일을 적용합니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat