Skip to content

[JJ-0926] 세션 기반 QuotaServe 및 LFU·FIFO KV 캐시 회수 정책 구현 - #2

Merged
zero-uuuuk merged 567 commits into
mainfrom
feat/JJ-0926-quotaserve-experiment
Oct 4, 2026
Merged

zero-uuuuk merged 567 commits into
mainfrom
feat/JJ-0926-quotaserve-experiment

Conversation

@zero-uuuuk

Copy link
Copy Markdown
Owner

주요 변경

vLLM V1에 세션별 KV 사용량과 후속 요청 대기 시간을 반영하는 QuotaServe를 구현하였다. EVICTION_POLICY 설정으로 Global LRU·LFU·FIFO·QuotaServe를 선택할 수 있다.

QuotaServe 구현

  • 요청의 application_id와 session_id를 이용해 앱과 세션을 구분
  • 최근 완료 요청의 KV 블록 수와 새 요청의 입력 길이로 세션별 필요 블록 수 추정
  • 후속 요청을 기다리는 세션까지 합산하여 앱별 quota 계산
  • 관측한 후속 요청 대기 시간에 따라 idle timeout 갱신
  • 세션 만료 또는 최근 완료 요청의 블록 목록 갱신으로 연결이 사라진 캐시를 우선 회수
  • 이후 quota 초과 앱에서 LRU 후보를 선택하고, 후보의 참조 해제 후 경과 시간에 따라 global LRU 적용

Quota는 회수 후보를 결정하는 기준이며, 고정 메모리 예약이나 블록 할당 상한으로 사용하지 않는다.

정책 비교 및 지표

  • FIFO는 캐시 등록 순서, LFU는 참조 빈도를 기준으로 회수
  • 공통 정책 인터페이스를 통해 블록 할당·재사용·참조 해제·회수 이벤트 연결
  • 모든 정책에서 빈 블록을 우선 사용하고, 요청이 참조 중인 블록은 회수 대상에서 제외
  • 정책별·앱별 블록 회수 횟수와 QuotaServe의 회수 경로별 지표 추가
  • 접두부 캐시 초기화 실패 시 API 오류 반환

GPU 실험 결과

별도 연구 저장소에서 A10G 24GB와 Llama-3.2-3B-Instruct로 180개 세션, 총 1,800개 요청을 비교하였다. 기록된 QuotaServe 결과는 Global LRU 대비 다음과 같다.

  • 전체 평균 TTFT 2.57% 감소
  • 전체 KV 캐시 적중률 1.46%p 증가
  • Chat KV 캐시 적중률 9.80%p 증가
  • 캐시 블록 회수 횟수 3.82% 감소
  • Agent 평균 TTFT는 감소했으나, 적중률과 p95 TTFT는 소폭 악화

실행 조건과 결과 선택 기준, 원자료는 연구 저장소의 004_serving_experiments에 기록하였다.

테스트 및 문서

  • 세션 대기·만료, 입력 길이 증가, quota 배분에 대한 테스트 추가
  • 공유 블록·재할당 블록 처리와 사용 중인 블록의 회수 방지 테스트 추가
  • FIFO·LFU의 회수 순서, 재사용 및 초기화 동작 테스트 추가
  • 설정 방법과 최종 회수 절차를 docs/design/quota_serve.md에 문서화

terrytangyuan and others added 30 commits April 20, 2026 04:17
…ponses (vllm-project#40314)

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
…startup errors. (vllm-project#39977)

Signed-off-by: chaojun-zhang <chaojun.zhang@intel.com>
Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>
…project#39916)

Signed-off-by: Julien Denize <julien.denize@mistral.ai>
Signed-off-by: juliendenize <julien.denize@mistral.ai>
…atch (vllm-project#39478)

Signed-off-by: velonica0 <like@mail.nankai.edu.cn>
…roject#40251)

Signed-off-by: wuyingjun <wuyingjun_yewu@cmss.chinamobile.com>
Signed-off-by: milesial <milesial@users.noreply.github.com>
Signed-off-by: Andreas Karatzas <akaratza@amd.com>
Signed-off-by: Fadi Arafeh <fadi.arafeh@arm.com>
)

Signed-off-by: Or Ozeri <oro@il.ibm.com>
Co-authored-by: Nicolò Lucchesi <nlucches@redhat.com>
Signed-off-by: ilmarkov <markovilya197@gmail.com>
Signed-off-by: Markov Ilya <markovilya19@gmail.com>
… TransferTopology (vllm-project#39529)

Signed-off-by: Zhanqiu Hu <zhu@redhat.com>
…m-project#40125)

Signed-off-by: Aleksandar Yanakiev <alexander.yanakiev@discretestack.com>
Co-authored-by: Aleksandar Yanakiev <alexander.yanakiev@discretestack.com>
Signed-off-by: kse <kevin.sejourne@cloud-temple.com>
Co-authored-by: kse <kevin.sejourne@cloud-temple.com>
Signed-off-by: Vasiliy Kuznetsov <vasiliy@meta.com>
…3 speculative decoding on ROCm (vllm-project#39616)

Signed-off-by: larryli2-amd <larryli2@amd.com>
Co-authored-by: TJian <tunjian.tan@embeddedllm.com>
Signed-off-by: yewentao256 <zhyanwentao@126.com>
…vllm-project#39242)

Signed-off-by: Rita Brugarolas Brufau <rita.brugarolasbrufau@amd.com>
Signed-off-by: Hashem Hashemi <hashem.hashemi@amd.com>
…Base (vllm-project#35949)

Signed-off-by: Bill Nell <bnell@redhat.com>
Co-authored-by: Robert Shaw <114415538+robertgshaw2-redhat@users.noreply.github.com>
Signed-off-by: Sage Moore <sage@neuralmagic.com>
Co-authored-by: Tyler Michael Smith <tyler@neuralmagic.com>
…llm-project#33728)

Signed-off-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>
khluu and others added 27 commits May 1, 2026 19:52
Replace the slow/flaky add-apt-repository deadsnakes PPA with building
Python from source. This avoids the long wait times and retry loops
when Launchpad PPA servers are slow or unresponsive.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Signed-off-by: khluu <khluu000@gmail.com>
…lm-project#41444)

Signed-off-by: Yongye Zhu <zyy1102000@gmail.com>
(cherry picked from commit edd60ac)
Signed-off-by: Yongye Zhu <zyy1102000@gmail.com>
…vllm-project#41526)

Co-authored-by: Copilot <copilot@github.com>
Assisted-by: OpenAI Codex
Assisted-by: OpenAI Codex
Signed-off-by: zero-uuuuk <bike481227@gmail.com>
Signed-off-by: zero-uuuuk <bike481227@gmail.com>
Signed-off-by: zero-uuuuk <bike481227@gmail.com>
Signed-off-by: zero-uuuuk <bike481227@gmail.com>
Signed-off-by: zero-uuuuk <bike481227@gmail.com>
Signed-off-by: zero-uuuuk <bike481227@gmail.com>
Signed-off-by: zero-uuuuk <bike481227@gmail.com>
Signed-off-by: zero-uuuuk <bike481227@gmail.com>
Signed-off-by: zero-uuuuk <bike481227@gmail.com>
Signed-off-by: zero-uuuuk <bike481227@gmail.com>
@zero-uuuuk
zero-uuuuk merged commit ce0bb5f into main Oct 4, 2026
3 of 4 checks passed
@zero-uuuuk
zero-uuuuk deleted the feat/JJ-0926-quotaserve-experiment branch October 4, 2026 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.