6장. NUMA 인식 워크로드 예약


NUMA 인식 스케줄링과 이를 사용하여 OpenShift Container Platform 클러스터에서 고성능 워크로드를 배포하는 방법에 대해 알아보십시오.

중요

NUMA 인식 스케줄링은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

NUMA 리소스 Operator를 사용하면 동일한 NUMA 영역에 고성능 워크로드를 예약할 수 있습니다. 사용 가능한 클러스터 노드 NUMA 리소스에 보고하는 노드 리소스 내보내기 에이전트와 워크로드를 관리하는 보조 스케줄러를 배포합니다.

6.1. NUMA 인식 스케줄링 정보

NUMA(Non-Uniform Memory Access)는 다른 CPU가 다른 속도로 다양한 메모리에 액세스할 수 있도록 하는 컴퓨팅 플랫폼 아키텍처입니다. NUMA 리소스 토폴로지는 계산 노드에서 서로 상대적 CPU, 메모리 및 PCI 장치의 위치를 나타냅니다. 공동 배치 리소스는 동일한 NUMA 영역에 있다고 합니다. 고성능 애플리케이션의 경우 클러스터는 단일 NUMA 영역에서 Pod 워크로드를 처리해야 합니다.

NUMA 아키텍처를 사용하면 여러 메모리 컨트롤러가 있는 CPU는 메모리가 있는 위치와 관계없이 CPU 복잡성에서 사용 가능한 메모리를 사용할 수 있습니다. 이렇게 하면 성능이 저하될 때 유연성이 향상됩니다. NUMA 영역 외부에 있는 메모리를 사용하여 워크로드를 처리하는 CPU는 단일 NUMA 영역에서 처리된 워크로드보다 속도가 느립니다. 또한 I/O-constrained 워크로드의 경우 멀리 있는 NUMA 영역의 네트워크 인터페이스가 애플리케이션에 도달하는 속도가 얼마나 빠르게 느려집니다. 통신 워크로드와 같은 고성능 워크로드는 이러한 조건에서 사양으로 작동할 수 없습니다. NUMA 인식 스케줄링은 지연에 민감한 또는 고성능 워크로드를 효율적으로 처리하기 위해 동일한 NUMA 영역의 요청된 클러스터 컴퓨팅 리소스(CPU, 메모리, 장치)를 조정합니다. NUMA 인식 스케줄링은 리소스 효율성을 높이기 위해 컴퓨팅 노드당 Pod 밀도도 향상시킵니다.

기본 OpenShift Container Platform Pod 스케줄러 스케줄링 논리는 개별 NUMA 영역이 아닌 전체 컴퓨팅 노드의 사용 가능한 리소스를 고려합니다. kubelet 토폴로지 관리자에서 가장 제한적인 리소스 정렬을 요청하는 경우 노드에 Pod를 허용할 때 오류 조건이 발생할 수 있습니다. 반대로 가장 제한적인 리소스 정렬을 요청하지 않으면 Pod를 적절한 리소스 정렬 없이 노드에 허용하여 성능이 저하되거나 예측할 수 없는 성능이 저하될 수 있습니다. 예를 들어 Pod 스케줄러가 Pod의 요청된 리소스를 사용할 수 있는지 여부를 확인하지 않고 보장된 Pod 워크로드에 대한 하위 최적화 스케줄링 결정을 내릴 때 Topology Affinity Errors를 사용한 실행 Pod 생성이 발생할 수 있습니다. 예약 불일치 결정으로 인해 Pod 시작 지연이 발생할 수 있습니다. 또한 클러스터 상태 및 리소스 할당에 따라 Pod 예약 결정이 실패한 시작 시도로 인해 클러스터에 추가 로드가 발생할 수 있습니다.

NUMA 리소스 Operator는 사용자 정의 NUMA 리소스 보조 스케줄러 및 기타 리소스를 배포하여 기본 OpenShift Container Platform Pod 스케줄러의 단점에 대해 완화합니다. 다음 다이어그램에서는 NUMA 인식 Pod 스케줄링에 대한 고급 개요를 제공합니다.

그림 6.1. NUMA 인식 스케줄링 개요

클러스터에서 다양한 구성 요소가 서로 상호 작용하는 방법을 보여주는 NUMA 인식 스케줄링
NodeResourceTopology API
NodeResourceTopology API는 각 컴퓨팅 노드에서 사용 가능한 NUMA 영역 리소스를 설명합니다.
NUMA 인식 스케줄러
NUMA 인식 보조 스케줄러는 NodeResourceTopology API에서 사용 가능한 NUMA 영역에 대한 정보를 수신하고 최적으로 처리할 수 있는 노드에서 고성능 워크로드를 예약합니다.
노드 토폴로지 내보내기
노드 토폴로지 내보내기자는 각 계산 노드에 대해 사용 가능한 NUMA 영역 리소스를 NodeResourceTopology API에 노출합니다. 노드 토폴로지 내보내기 데몬은 PodResources API를 사용하여 kubelet에서 리소스 할당을 추적합니다.
PodResources API
PodResources API는 각 노드의 로컬이며 리소스 토폴로지 및 사용 가능한 리소스를 kubelet에 노출합니다.

추가 리소스

  • 클러스터에서 보조 Pod 스케줄러 실행 및 보조 Pod 스케줄러를 사용하여 Pod를 배포하는 방법에 대한 자세한 내용은 보조 스케줄러 를 사용하여 Pod 스케줄링을 참조하십시오.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.