[Ray] 메모리 압력 테스트의 로그 패턴 업데이트로 테스트 안정성 확보
PR 링크: ray-project/ray#61663 상태: Merged | 변경: +2 / -2
들어가며
Ray의 메모리 압력 모니터는 노드의 메모리가 부족하면 워커를 종료합니다. 이전 PR(#61210)에서 관련 로그 메시지가 변경되었는데, 메모리 압력 테스트가 기존 로그 문자열을 기대하고 있어 일관되게 실패하기 시작했습니다. 이 PR은 테스트의 기대 문자열을 새 로그 형식에 맞춥니다.
핵심 코드 분석
Before: 이전 로그 형식
# test_memory_pressure.py
expected_worker_eviction_message = (
"Task was killed due to the node running low on memory"
)
After: 변경된 로그 형식
expected_worker_eviction_message = (
"worker(s) were killed due to the node running low on memory"
)
에러 검증 부분도 동일하게 업데이트됩니다:
verify_failed_task,
name="allocate_memory",
error_type="OUT_OF_MEMORY",
error_message="worker(s) were killed due to the node running low on memory",
왜 이게 좋은가
1. 테스트-코드 정합성
로그 메시지를 변경할 때 해당 메시지에 의존하는 테스트를 함께 업데이트하지 않으면, 테스트가 실패하면서 CI 파이프라인이 차단됩니다. 이런 종류의 이슈는 단순하지만 발견이 지연되면 다른 개발자의 작업을 방해합니다.
2. 로그 기반 테스트의 취약성
이 사례는 로그 문자열에 의존하는 테스트의 취약함을 보여줍니다. 이상적으로는 구조화된 에러 코드나 이벤트 타입으로 검증하는 것이 더 견고하지만, 현재 구조에서는 문자열 매칭이 실용적 선택입니다.
3. 메모리 압력 테스트의 중요성
Ray의 메모리 관리는 분산 컴퓨팅에서 핵심적인 기능입니다. 이 테스트가 깨지면 메모리 관련 회귀를 감지하지 못하게 되므로, 빠른 수정이 중요합니다.
참고 자료
- Ray PR #61210 — 로그 메시지를 변경한 원본 PR
- Ray Memory Management — Ray의 메모리 관리 메커니즘
관련 포스트
PR Analysis 의 다른글
- 이전글 [triton] Triton 2CTA Block-Scaled Matmul — cuBLAS 대비 성능 비교
- 현재글 : [Ray] 메모리 압력 테스트의 로그 패턴 업데이트로 테스트 안정성 확보
- 다음글 [Loki] 포인터 읽기 배치 크기 증가로 인덱스 조회 25% 가속
댓글