[Ray Serve] 처리량 최적화 설정 로깅 기능 추가
PR 링크: ray-project/ray#62146 상태: Merged | 변경: +24 / -0
들어가며
Ray Serve는 RAY_SERVE_THROUGHPUT_OPTIMIZED 환경 변수를 통해 처리량 최적화 모드를 활성화할 수 있다. 하지만 이 모드가 어떤 설정으로 동작하는지 확인하기 어려워, 디버깅이나 운영 시 불편함이 있었다. 이 PR은 처리량 최적화 모드 활성화 시 관련 설정들을 로그로 출력하는 기능을 추가한다.
핵심 코드 분석
컨트롤러 초기화 시 로그 출력
async def __init__(self, ...):
if RAY_SERVE_THROUGHPUT_OPTIMIZED:
self._log_throughput_opt_message()
# ...
최적화 설정 로그 메서드
def _log_throughput_opt_message(self) -> None:
msg = "Throughput optimized Ray Serve enabled with the following configurations:\n"
if RAY_SERVE_ENABLE_DIRECT_INGRESS:
msg += " * Direct ingress enabled\n"
if RAY_SERVE_USE_GRPC_BY_DEFAULT:
msg += " * gRPC communication enabled\n"
if not RAY_SERVE_RUN_USER_CODE_IN_SEPARATE_THREAD:
msg += " * User code running in main thread (not separate)\n"
if not RAY_SERVE_RUN_ROUTER_IN_SEPARATE_LOOP:
msg += " * Router running in main thread (not separate)\n"
if not RAY_SERVE_LOG_TO_STDERR:
msg += " * Log to stderr disabled\n"
msg += f" * Request path log buffer size: {RAY_SERVE_REQUEST_PATH_LOG_BUFFER_SIZE}\n"
logger.info(msg)
왜 이게 좋은가
- 운영 가시성: 처리량 최적화 모드에서 어떤 설정이 활성화되었는지 한눈에 파악할 수 있다.
- 디버깅 편의성: 성능 이슈 발생 시 어떤 최적화가 적용되었는지 로그에서 즉시 확인 가능하다.
- 설정 문서화 효과: 로그 메시지 자체가 처리량 최적화에 관련된 주요 설정들의 목록 역할을 한다.
- 조건부 출력:
RAY_SERVE_THROUGHPUT_OPTIMIZED가 설정된 경우에만 로그를 출력하므로 일반 사용 시 노이즈가 없다.
참고 자료
관련 포스트
PR Analysis 의 다른글
- 이전글 [CPython 3.13] asyncio.Queue docstring의 모호한 표현 수정 (backport)
- 현재글 : [Ray Serve] 처리량 최적화 설정 로깅 기능 추가
- 다음글 [CPython 3.14] asyncio.Queue docstring의 모호한 표현 수정 (backport)
댓글