llm-d-async-rs · llm-d-router v0.10.0 · 2026-09-30

Holdback on top of eviction: it removes evictions under steady load, but only pays off when evictions are what hurt

Flow control can protect interactive traffic from batch work two ways: evict in-flight batch requests when interactive work is waiting, or hold back a share of the pool so batch never fills it. Is it worth running both?

It removes evictions under steady interactive load. Whether that helps depends on the model: on 1.5B it brings TTFT p95 to the floor; on 14B with long prompts it changes nothing.

Setup

Steady interactive load

One interactive request every 1/rate seconds for 60 s, alongside the batch.

steady 1 req/s

armevictionsTTFT p50TTFT p95batch donejob a metjob b metjob c met
eviction540.12 s0.57 s62.4 s87%100%100%
eviction + 10% holdback110.12 s0.13 s64.6 s96%100%100%
eviction + 20% holdback00.12 s0.13 s64.8 s100%100%100%

steady 2 req/s

armevictionsTTFT p50TTFT p95batch donejob a metjob b metjob c met
eviction1080.12 s0.18 s65.0 s86%100%100%
eviction + 10% holdback340.12 s0.13 s64.3 s88%100%100%
eviction + 20% holdback10.12 s0.13 s65.1 s98%100%100%

steady 4 req/s

armevictionsTTFT p50TTFT p95batch donejob a metjob b metjob c met
eviction2190.12 s0.18 s70.1 s80%100%100%
eviction + 10% holdback680.11 s0.12 s65.9 s78%100%100%
eviction + 20% holdback180.12 s0.13 s72.9 s89%100%100%

Bursty interactive load

15 bursts of 32 interactive requests, 6 s apart. Includes the arms without eviction for reference.

armevictionsTTFT p50TTFT p95batch donejob a metjob b metjob c met
no eviction01.80 s6.72 s75.6 s100%100%100%
10% holdback01.46 s6.29 s75.1 s100%100%100%
40% holdback01.05 s4.93 s80.5 s100%100%100%
eviction3500.22 s0.43 s69.1 s16%100%100%
eviction + 10% holdback3290.22 s0.41 s69.9 s0%100%100%
eviction + 20% holdback3240.21 s0.39 s69.7 s0%100%100%

Expensive evictions: Qwen2.5-14B

On 1.5B an eviction costs almost nothing (17-token prompts, 96% prefix hits on resume). This repeats the steady 1 req/s comparison on Qwen2.5-14B with ~4.8k-token batch prompts × 1,500 tokens (96 requests, loose deadlines) and 500-token interactive prompts × 128 tokens. Evictions fall as on 1.5B, but TTFT p95 is ~0.92 s in every arm, and TTFT p50 is 0.22 s throughout.

steady 1 req/s

armrunsevictionsTTFT p50TTFT p95batch done
eviction31660.23 s0.92 s228.0 s
eviction + 10% holdback3110.22 s0.92 s236.8 s
eviction + 20% holdback220.22 s0.92 s239.2 s

Caveats