vLLM 메모리 누수 추적: 범인은 힙이 아니었다
Mistral AI
2026년 1월 25일 (일)
- •Mistral AI가 vLLM의 분산 추론 아키텍처에서 발생한 치명적인 메모리 누수 현상을 포착했다.
- •엔지니어링 팀은 표준 힙 프로파일러의 한계를 넘기 위해 커널 수준의 BPFtrace 도구를 활용했다.
- •누수의 근본 원인은 저수준 통신 라이브러리인 UCX 및 NIXL 내의 익명 메모리 매핑으로 밝혀졌다.
Mistral AI 엔지니어링 팀이 고성능 서빙을 위한 오픈소스 추론 프레임워크인 vLLM에서 발생한 끈질긴 메모리 누수 사례를 분석한 기술 포스트모템을 공유했다. 이번 문제는 파운데이션 모델인 Mistral Medium 3.1을 프리필과 디코드 단계가 분리된 아키텍처에 배포하는 과정에서 드러났다. 시스템 메모리가 분당 400MB씩 선형적으로 증가하는 현상이 관찰됐음에도, 기존 Python 프로파일링 도구는 관리형 힙 내부에서 그 어떤 이상 징후도 감지하지 못했다. 이러한 불일치에 직면한 팀은 리눅스 커널 수준까지 조사 범위를 넓혔다. 프로세스가 실제로 점유하는 RAM 용량인 RSS를 `pmap`으로 점검한 결과, 누수가 힙 영역이 아닌 익명 메모리 매핑에서 발생하고 있음을 확인했다. 해당 영역은 저수준 시스템 호출을 통해 크기가 조정되거나 재할당되었지만, 적절히 해제되지 않고 있었다. 결국 원인 추적의 끝은 서버 노드 간에 KV Cache를 전송하는 전문 통신 라이브러리 NIXL과 UCX를 가리켰다. 이번 조사는 하드웨어 가속 의존성 층위 뒤에 병목 현상이 숨어 있는 딥러닝 인프라 스택의 복잡성을 잘 보여준다. 실시간 커널 추적 도구인 BPFtrace를 활용해 어떤 라이브러리가 오작동하는지 정확히 입증할 수 있었다. 대규모 언어 모델 (LLM) 서빙이 점점 더 분산화됨에 따라, 디버깅은 이제 애플리케이션 코드를 넘어 운영 체제의 메모리 관리 영역까지 파고들어야 함을 시사한다.