Summary#
Transformer의 자기회귀 추론에서 KV 캐시는 이미 처리한 토큰의 key·value를 보관해 재계산을 줄인다. 대신 활성 요청의 문맥이 길어지고 동시 요청이 늘수록 필요한 캐시 용량도 커진다. PagedAttention은 연속된 큰 메모리 구역을 요청별로 확보하는 방식의 단편화·과다 예약을 줄이지만, KV 캐시의 용량 한계 자체를 없애지는 않는다. (huggingface.co)
Key Points#
- 용량 추산: 일반적인 전체 문맥 자기회귀 attention의 KV 저장량은 대략
2 × 계층 수 × KV 헤드 수 × 헤드 차원 × 저장 바이트 수 × 활성 토큰 수다. 공유이 없는 요청들의 활성 토큰 수는 각 요청의 문맥 길이를 합산한다. GQA처럼 KV 헤드 수를 줄이면 토큰당 저장량도 줄어든다. 이 식은 KV 텐서의 개략적 크기이며 블록의 빈 공간이나 다른 GPU 메모리 사용량은 포함하지 않는다. (huggingface.co) - 페이징이 해결하는 문제: PagedAttention은 시퀀스의 KV를 고정 크기 블록으로 나누고, 물리적으로 연속되지 않은 블록을 연결한다. 필요할 때 블록을 할당하므로 큰 연속 공간의 사전 예약과 외부 단편화를 피하고, 블록 단위의 공유도 가능하게 한다. 다만 마지막 블록의 미사용 슬롯처럼 블록 내부의 낭비는 남을 수 있다. (arxiv.org)
- 실패 모드의 구분: (1) 캐시 풀이 부족해 새 블록을 배정하지 못하는 용량 압박, (2) 부분적으로 채운 블록 때문에 생기는 내부 낭비, (3) 재사용을 위해 보관한 접두사 블록이 새 할당 과정에서 퇴출되는 상황은 서로 다르다. vLLM v1 문서는 필요한 자유 블록이 부족하면 할당을 반환하고, 자유 큐의 캐시 블록을 재할당할 때 해당 접두사 캐시 항목을 퇴출한다고 설명한다. 따라서 “페이지 단편화 때문에 OOM”이라고 단정하기 전에 어느 현상인지 구분해야 한다. (docs.vllm.ai)
- 운영상 점검 순서: 요청별 입력·출력 길이와 동시 활성 요청 수로 KV 수요를 추산한 뒤, 캐시 블록 용량 및 다른 GPU 메모리 사용량과 비교한다. 접두사 재사용 저하가 문제라면 캐시 블록의 퇴출·재사용 경로를 별도로 살핀다. 모델 가중치 자체가 GPU에 맞지 않는 OOM은 페이지 배치 조정만으로 해결할 수 없는 별개의 문제다. (arxiv.org)
Cautions#
- 위 식은 계획용 근사치다. 실제 점유량은 모델의 attention 구성, 캐시 자료형, 블록 크기, 공유 여부 및 구현의 추가 메모리에 따라 달라진다. (github.com)
- 페이징으로 외부 단편화를 완화했다는 주장과 메모리 부족이 더는 발생하지 않는다는 주장은 같지 않다. 반대로, OOM이나 지연 증가만 보고 원인을 페이지 단편화로 특정할 수도 없다. 이 초안은 특정 배포 환경의 장애 원인을 검증한 보고서가 아니다. (arxiv.org)
- vLLM의 블록 할당·퇴출에 관한 세부 설명은 인용한 v1 문서 기준이다. 다른 버전이나 설정에 그대로 적용된다고 확인하지 않았다. (docs.vllm.ai)
Sources#
- Kwon 외, Efficient Memory Management for Large Language Model Serving with PagedAttention (arxiv.org)
- vLLM, Automatic Prefix Caching (docs.vllm.ai)
- vLLM, Troubleshooting (docs.vllm.cc)
- Hugging Face, How caching works (huggingface.co)
- JAX Scaling Book, Inference (github.com)
Sagwan Revalidation 2026-10-03T01:10:15Z#
- verdict:
ok - note: 핵심 주장과 용량 추산은 여전히 유효하며, 버전별 차이도 주의사항에 명시돼 있다.
Sagwan Revalidation 2026-10-06T01:16:14Z#
- verdict:
ok - note: 핵심 주장과 용량 추산은 유효하며, 구현·버전별 차이도 주의사항에 명시돼 있다.
Sagwan Revalidation 2026-10-08T23:50:38Z#
- verdict:
ok - note: 핵심 주장과 용량 추산은 유효하며, 버전별 차이도 명시돼 있다.
Sagwan Revalidation 2026-10-11T17:48:49Z#
- verdict:
ok - note: 핵심 주장과 용량 추산은 유효하며, 구현·버전별 차이도 명시돼 있다.
Sagwan Revalidation 2026-10-14T12:37:00Z#
- verdict:
ok - note: 핵심 주장과 용량 추산은 유효하며, 구현별 차이도 주의사항에 명시돼 있다.
Sagwan Revalidation 2026-10-17T09:21:57Z#
- verdict:
refresh - note: 핵심 설명은 유효하지만 ‘공유이’ 오탈자가 있어 재사용 전 수정할 가치가 있다.
Sagwan Revalidation 2026-10-20T05:08:00Z#
- verdict:
refresh - note: 핵심 설명은 유효하지만 ‘공유이’ 오탈자가 남아 있어 수정할 가치가 있다.