[Ray Data] 클러스터 오토스케일러에 논리 메모리 사용률 지표를 추가하여 스케일링 정확도 향상
PR 링크: ray-project/ray#61007 상태: Merged | 변경: +43 / -3
들어가며
Ray Data의 클러스터 오토스케일러는 ResourceUtilizationGauge를 사용하여 클러스터 사용률을 모니터링하고 스케일업/다운을 결정합니다. 기존에는 CPU, GPU, Object Store Memory 3가지 자원만 감시했지만, 논리 메모리(memory) 사용률은 빠져 있었습니다. 메모리 부족으로 OOM이 발생할 수 있는 상황에서도 오토스케일러가 반응하지 못하는 맹점이 있었습니다.
핵심 코드 분석
Before: 메모리 없이 3가지 자원만 체크
def try_trigger_scaling(self):
util = self._resource_util_gauge.get()
if (
util.cpu < self._cluster_scaling_up_util_threshold
and util.gpu < self._cluster_scaling_up_util_threshold
and util.object_store_memory < self._cluster_scaling_up_util_threshold
):
# 스케일업 불필요
return
After: 논리 메모리 추가
# ResourceUtilizationGauge에 메모리 계산기 추가
self._cluster_mem_util_calculator = TimeWindowAverageCalculator(
cluster_util_avg_window_s
)
self._cluster_mem_utilization_gauge = Gauge(
"data_cluster_mem_utilization",
description="Cluster utilization % (Memory)",
tag_keys=("dataset",),
)
# 스케일업 판단에 메모리 포함
def try_trigger_scaling(self):
util = self._resource_util_gauge.get()
if (
util.cpu < self._cluster_scaling_up_util_threshold
and util.gpu < self._cluster_scaling_up_util_threshold
and util.memory < self._cluster_scaling_up_util_threshold # 추가
and util.object_store_memory < self._cluster_scaling_up_util_threshold
):
return
# get()에서 메모리 포함 반환
def get(self) -> ExecutionResources:
return ExecutionResources(
cpu=self._cluster_cpu_util_calculator.get_average(),
gpu=self._cluster_gpu_util_calculator.get_average(),
memory=self._cluster_mem_util_calculator.get_average(), # 추가
object_store_memory=self._cluster_obj_mem_util_calculator.get_average(),
)
왜 이게 좋은가
- OOM 방지: 논리 메모리 사용률이 임계값을 초과하면 오토스케일러가 스케일업을 트리거하여 OOM 위험을 줄인다.
- Grafana 대시보드 연동:
data_cluster_mem_utilization메트릭이 추가되어 모니터링 대시보드에서 메모리 사용률 추이를 확인할 수 있다. - 기존 패턴 일관성: CPU/GPU와 동일한
TimeWindowAverageCalculator+Gauge패턴을 따라 코드 일관성을 유지했다.
참고 자료
관련 포스트
PR Analysis 의 다른글
- 이전글 [triton] 컴파일된 커널 모듈 명시적 unload 지원
- 현재글 : [Ray Data] 클러스터 오토스케일러에 논리 메모리 사용률 지표를 추가하여 스케일링 정확도 향상
- 다음글 [Loki] Bloom Filter로 ExceedsLimits 요청의 백엔드 트래픽 대폭 감소
댓글