12.2. NUMA 리소스 스케줄링 전략
고성능 작업 부하를 스케줄링할 때, 보조 스케줄러는 다양한 전략을 사용하여 선택된 작업자 노드 내에서 어떤 NUMA 노드가 작업 부하를 처리할지 결정할 수 있습니다. OpenShift Container Platform에서 지원되는 전략에는 LeastAllocated
, MostAllocated
, BalancedAllocation이
있습니다. 이러한 전략을 이해하면 성능과 리소스 활용을 위해 작업 부하 배치를 최적화하는 데 도움이 됩니다.
NUMA 인식 클러스터에서 고성능 작업이 예약되면 다음 단계가 발생합니다.
- 스케줄러는 먼저 클러스터 전체 기준에 따라 적합한 워커 노드를 선택합니다. 예를 들어 오염, 라벨 또는 리소스 가용성입니다.
- 작업자 노드가 선택된 후 스케줄러는 NUMA 노드를 평가하고 점수 매기기 전략을 적용하여 어떤 NUMA 노드가 작업 부하를 처리할지 결정합니다.
- 작업 부하가 예약된 후, 선택된 NUMA 노드의 리소스가 할당을 반영하도록 업데이트됩니다.
기본적으로 적용되는 전략은 LeastAllocated
전략입니다. 이렇게 하면 가장 사용 가능한 리소스가 많고 가장 적게 활용되는 NUMA 노드에 작업 부하가 할당됩니다. 이 전략의 목표는 경쟁을 줄이고 핫스팟을 피하기 위해 NUMA 노드에 작업 부하를 분산하는 것입니다.
다음 표는 다양한 전략과 그 결과를 요약한 것입니다.
득점 전략 요약
전략 | 설명 | 결과 |
---|---|---|
| 가장 많은 사용 가능한 리소스를 보유한 NUMA 노드를 선호합니다. | 경쟁을 줄이고 우선 순위가 높은 작업을 위한 여유 공간을 확보하기 위해 작업 부하를 분산합니다. |
| 사용 가능한 리소스가 가장 적은 NUMA 노드를 선호합니다. | 더 적은 수의 NUMA 노드에 작업 부하를 통합하여 다른 노드가 에너지 효율성에 집중할 수 있도록 지원합니다. |
| CPU와 메모리 사용량이 균형 잡힌 NUMA 노드를 선호합니다. | 불균형한 사용 패턴을 방지하여 균등한 리소스 활용을 보장합니다. |
LeastAllocated 전략 예시
LeastAllocated
가 기본 전략입니다. 이 전략은 가장 많은 리소스가 있는 NUMA 노드에 작업 부하를 할당하여 리소스 경합을 최소화하고 NUMA 노드 전반에 작업 부하를 분산합니다. 이를 통해 핫스팟이 줄어들고 우선 순위가 높은 작업에 충분한 여유 공간이 확보됩니다. 워커 노드에 두 개의 NUMA 노드가 있고 작업 부하에 4개의 vCPU와 8GB의 메모리가 필요하다고 가정해 보겠습니다.
NUMA 노드 | 총 CPU | 사용된 CPU | 총 메모리(GB) | 사용된 메모리(GB) | 사용 가능한 리소스 |
---|---|---|---|---|---|
NUMA 1 | 16 | 12 | 64 | 56 | 4개의 CPU, 8GB 메모리 |
NUMA 2 | 16 | 6 | 64 | 24 | 10개의 CPU, 40GB 메모리 |
NUMA 2는 NUMA 1에 비해 사용 가능한 리소스가 더 많으므로 작업 부하가 NUMA 2에 할당됩니다.
MostAllocated 전략 예시
MostAllocated
전략은 사용 가능한 리소스가 가장 적은 NUMA 노드, 즉 가장 많이 활용되는 NUMA 노드에 작업 부하를 할당하여 작업 부하를 통합합니다. 이러한 접근 방식은 다른 NUMA 노드가 에너지 효율성이나 완전한 격리가 필요한 중요한 작업 부하를 처리할 수 있도록 도와줍니다. 이 예제에서는 최소 할당
섹션에 나열된 "예시 초기 NUMA 노드 상태" 값을 사용합니다.
작업 부하에는 다시 4개의 vCPU와 8GB 메모리가 필요합니다. NUMA 1은 NUMA 2에 비해 사용 가능한 리소스가 적으므로 스케줄러는 NUMA 1에 작업 부하를 할당하여 NUMA 2를 유휴 상태 또는 최소한의 부하로 남겨두면서 리소스를 더욱 활용합니다.
BalancedAllocation 전략 예시
BalancedAllocation
전략은 CPU와 메모리에서 리소스 활용도가 가장 균형 잡힌 NUMA 노드에 작업 부하를 할당합니다. 목표는 CPU 사용률이 높고 메모리 활용도가 낮은 등 사용 불균형을 방지하는 것입니다. 작업자 노드에 다음과 같은 NUMA 노드 상태가 있다고 가정합니다.
NUMA 노드 | CPU 사용량 | 메모리 사용량 | BalancedAllocation 점수 |
---|---|---|---|
NUMA 1 | 60% | 55% | 높음(더 균형 잡힌) |
NUMA 2 | 80% | 20% | 낮음(균형이 덜 잡힘) |
NUMA 1은 NUMA 2에 비해 CPU와 메모리 활용도가 더 균형 잡혀 있으므로 BalancedAllocation
전략을 적용하면 작업 부하가 NUMA 1에 할당됩니다.