17.5. 인프라 및 애플리케이션 컨테이너의 CPU 제한
일반적인 하우스키핑 및 워크로드 작업은 대기 시간에 민감한 프로세스에 영향을 줄 수 있는 방식으로 CPU를 사용합니다. 기본적으로 컨테이너 런타임은 모든 온라인 CPU를 사용하여 모든 컨테이너를 함께 실행하므로 컨텍스트 전환과 지연 시간 급증이 발생할 수 있습니다. CPU를 분할하면 지연 시간에 민감한 프로세스를 서로 분리하여 노이즈가 많은 프로세스가 지연 시간에 민감한 프로세스를 방해하는 것을 방지할 수 있습니다. 다음 표에서는 노드 튜닝 연산자를 사용하여 노드를 튜닝한 후 CPU에서 프로세스가 실행되는 방식을 설명합니다.
프로세스 유형 | 세부 정보 |
---|---|
| 저지연 작업 부하가 실행되는 경우를 제외한 모든 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를 지정합니다.예약된
그룹의 스레드는 종종 바쁘다.예약된
그룹에서 대기 시간에 민감한 애플리케이션을 실행하지 마십시오. 지연 시간에 민감한 애플리케이션은격리된
그룹에서 실행됩니다.
프로세스
- 해당 환경의 하드웨어와 토폴로지에 적합한 성능 프로필을 만듭니다.
인프라 및 애플리케이션 컨테이너에 대해
reserved
및isolated
하려는 CPU와 함께 예약 및 격리된 매개변수를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow