본문으로 건너뛰기
r/LocalLLaMA조회 1

Profile v2.2로 vLLM 추론 병목을 수치화

Profile v2.2가 vLLM 병목을 진단하고 튜닝 결과를 수치로 검증한다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

Profile v2.2는 GPU의 이론적 성능 상한과 vLLM 서버의 실제 측정값을 비교해 병목 원인과 플래그를 결정하는 오픈소스 optimizer다. 우선순위 DAG와 상호 배타 규칙으로 여러 경고에서 실제 원인을 하나로 좁히며, AMD 카드도 지원한다. 작성자의 RTX 5090·muse-glimmer 30B 환경에서는 25k context 처리량이 81 tok/s에서 421 tok/s로 늘고 비용은 $3.41에서 $0.65로 줄었다. KV thrashing으로 TTFT가 32.8초까지 악화된 회귀도 `worse`로 기록한 뒤 다음 수정에서 회복했다.

실용적 조언

  • vLLM 서버를 실행 중이라면 제공된 설치 명령으로 Profile을 설치하고 `profile diagnose --url http://localhost:8000/metrics --duration 2m`를 실행해 현재 서버의 병목 진단을 받을 수 있다. 플래그를 적용한 뒤 같은 방식으로 재측정하면 변경 전후의 처리량과 지연 시간 차이를 비교할 수 있다. 작성자는 진단 결과가 틀린 지점도 함께 알려 달라고 요청했다.

섹션별 상세

01
Profile v2.2는 inference server의 GPU Roofline ceiling을 계산한 뒤 실제 서버 측정값과 비교하고, 병목 원인에 맞는 플래그를 지정하는 오픈소스 optimizer다. 사용자가 플래그를 적용하면 다시 측정해 수정 전후의 수치를 비교한다. 작성자는 기존의 반복적인 수동 튜닝을 측정·수정·검증의 결정적 과정으로 바꾸며 자신의 환경에서는 네 번, 약 30분 만에 작업을 마쳤다고 밝혔다.
02
이번 릴리스에서는 진단 규칙 엔진을 우선순위 DAG 기반으로 다시 작성했다. 여덟 개 규칙에 상호 배타 조건을 적용해 여러 알람이 동시에 발생해도 다섯 개의 알람 중 네 개의 중복 신호를 묵히고 하나의 실제 원인을 남기는 구조다. 결과가 결정적이므로 각 튜닝 단계에서 어떤 플래그를 적용할지 수치와 규칙에 따라 추적할 수 있으며, AMD 카드도 지원 대상에 포함됐다.
03
작성자는 RTX 5090에서 muse-glimmer 30B와 SWE-Bench agents를 실행하고 DFlash spec decoding은 사용하지 않은 조건에서 성능 변화를 측정했다. 25k context에서 처리량은 81 tok/s에서 421 tok/s로, 1M output tok당 비용은 $3.41에서 $0.65로, 에너지 사용량은 4.72 J/tok에서 1.08 J/tok로 바뀌었으며 TTFT는 224ms, p95는 500ms, 실행 종료 시점 TPOT는 23ms였다. 이 수치는 특정 GPU·모델·워크로드에 대한 결과이므로 다른 서버에서 동일한 개선폭을 보장하는 근거는 아니다.
04
튜닝 과정에서 한 번은 KV thrashing으로 TTFT가 32.8초까지 증가했지만 Profile이 해당 단계를 `worse`로 기록했다. 다음 수정 단계에서 성능이 회복됐고, 회귀 결과도 기록에 남아 이후 판단에 활용됐다. 현재는 vLLM만 지원하며 multi-GPU와 TP, 추가 inference engine, k8s 지원이 다음 개발 항목으로 남아 있다.

용어 해설

Roofline 모델(Roofline Model)
GPU의 연산 성능과 메모리 대역폭을 기준으로 추론 속도의 이론적 상한을 계산하는 모델이다. 실제 서버 측정값을 이 상한과 비교하면 연산 부족, 메모리 병목처럼 성능을 제한하는 지점을 좁힐 수 있다.
추론 서버(Inference Server)
학습된 AI 모델에 요청을 전달하고 생성 결과를 반환하는 실행 서버다. 이 글에서는 vLLM 서버의 metrics를 일정 시간 수집해 GPU 성능 상한과 실제 처리량, 지연 시간, 토큰당 에너지를 비교하는 대상으로 쓰인다.
우선순위 DAG(Priority DAG)
규칙 사이의 우선순위와 실행 의존성을 방향성 그래프로 표현한 구조다. Profile은 여덟 개 규칙을 이 구조에 배치하고 상호 배타 조건을 적용해 여러 경고 중 하나의 원인을 남기는 방식으로 진단 결과를 결정한다.
KV Thrashing
긴 문맥을 처리할 때 KV cache가 GPU 메모리에서 반복적으로 밀려나고 다시 로드되면서 추론 지연이 급증하는 현상이다. 원문에서는 한 튜닝 단계에서 TTFT가 32.8초까지 늘어난 회귀 원인으로 기록됐다.
첫 토큰 지연 시간(TTFT)
요청을 받은 뒤 첫 번째 출력 토큰이 생성될 때까지 걸리는 시간이다. 원문 측정에서는 정상 실행의 TTFT가 224ms였고 p95가 500ms였지만, KV thrashing이 발생한 단계에서는 32.8초로 악화됐다.
토큰당 생성 시간(TPOT)
첫 토큰이 나온 뒤 다음 출력 토큰 하나를 생성하는 데 걸리는 시간이다. Profile의 성능 측정에서는 실행 종료 시점의 TPOT가 23ms로 기록돼 TTFT와 함께 서버 응답성을 판단하는 지표로 사용됐다.

코드 예제

bash
curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/jungledesh/profile/releases/latest/download/profile-installer.sh | sh

# Profile your vLLM server
profile diagnose --url http://localhost:8000/metrics --duration 2m

설치 스크립트를 실행한 뒤 vLLM 서버의 metrics endpoint를 2분 동안 수집해 Profile 진단을 시작하는 명령이다.

언급된 도구

Profile추천링크

GPU Roofline ceiling과 실제 vLLM 서버 측정값을 비교해 병목 원인과 적용할 플래그를 찾는 오픈소스 inference optimizer

vLLM중립

Profile이 현재 지원하는 inference server engine

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 19.수집 2026. 08. 19.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.