
vLLM 버그부터 캐시 미스까지, 추가 GPU 없이 트래픽 4배를 견뎌낸 실전 LLM 관찰성(Observability) 구축기
오픈소스 LLM 배포 이후 겪게 되는 원인 불명의 성능 저하와 타임아웃을 해결하기 위해 토스증권 ML 플랫폼 팀이 개척한 모니터링 여정을 다룹니다. 기존 서버 지표의 한계를 넘어 TTFT, Prefix Cache Hit Rate, KV Cache 메모리 효율 등 LLM 맞춤형 지표들을 발굴하고 활용한 실전 문제 해결법을 제시합니다. 급변하는 프레임워크 환경 속에서 인프라 효율성을 극대화하기 위한 구체적인 방법론과 아키텍처 철학을 배울 수 있습니다.
Kubernetes 환경에서 vLLM이나 SGLang 기반으로 LLM 인프라를 직접 서빙하며 성능 튜닝에 골머리를 앓고 있는 플랫폼 엔지니어 및 AI 개발자에게 모니터링 지표 설계 가이드라인으로 강력히 추천합니다.
토스증권은 다수의 오픈 소스 및 자체 튜닝 LLM을 서비스에 도입하면서, 기존 머신러닝 모니터링 방식으로는 예측하기 힘든 의문의 타임아웃과 성능 저하 원인을 규명하기 어려웠습니다. vLLM 등 서빙 프레임워크의 불안정성과 인프라의 복잡성으로 인해 장애 원인을 즉시 파악할 수 있는 신뢰도 높은 지표가 부족한 상황이었습니다.
vLLM 및 SGLang 프레임워크가 제공하는 Prefix Cache Hit Rate, KV Cache 사용량, TTFT 등의 LLM 특화 지표들을 수집하여 Grafana 기반의 모니터링 대시보드에 통합 구축했습니다. 이를 바탕으로 캐시 설정 수정, 프레임워크 스페셜 토큰 버그의 워크어라운드 적용, 동시성 조율을 순차적으로 진행했습니다.
비활성화되어 있던 Prefix Cache를 활성화하여 TTFT를 최대 1/10 수준으로 줄이고 히트율 90% 이상을 달성했으며, 버그 패치를 통해 생성 에러율을 0.2%에서 0.02%로 감소시켰습니다. 또한 KV Cache 여유 용량을 분석하여 추가 GPU 증설 없이 트래픽 수용량을 최대 4배까지 확장하는 성과를 거두었습니다.
Trade-off
서빙 프레임워크의 빠른 릴리스 주기와 잦은 버그로 인해 특정 옵션 조합에서 응답 누락이나 CPU 스로틀링 등의 사이드 이펙트가 발생할 수 있어, 사전 예방보다는 기민한 지표 탐색과 빠른 롤백 체계에 지속해서 의존해야 합니다.
LLM 요청에서 시스템 프롬프트처럼 공통적으로 사용되는 앞부분의 고정 문자열에 대해 Key-Value 연산 결과를 캐싱하여 불필요한 재연산을 방지하는 최적화 기법입니다.
사용자의 프롬프트 요청 후 LLM이 첫 번째 출력 토큰을 생성하여 클라이언트에 전달하기까지 걸리는 시간으로, 생성형 서비스의 실질적인 사용자 경험(UX)을 결정하는 핵심 지표입니다.
LLM의 이전 추론 단계에서 계산된 Attention Key-Value 행렬 데이터를 메모리에 저장해 두어, 매 새로운 토큰을 생성할 때마다 가중치를 다시 계산하지 않도록 돕는 기술입니다.