00

How to read this manual

This manual helps you serve, size, tune, and debug open models with vLLM, and it gives a measured answer for each decision.

The vLLM documentation tells you what each flag does. This manual tells you which flags matter for your GPU and your traffic, and what happened when we changed them.

Start here

These commands give you a server:

uv venv --python 3.12 --seed
source .venv/bin/activate
uv pip install vllm==0.31.0 --torch-backend=auto
vllm serve Qwen/Qwen3-0.6B --reasoning-parser qwen3 2>&1 | tee server.log
curl http://localhost:8000/v1/models

Run the curl command in a second terminal. Part 1 walks through each command and the output you should see.

What you can do after this manual

  • Install vLLM, serve a model, and read the startup lines that decide most answers.
  • Predict how many users fit on your GPU, and fix an out-of-memory failure at startup.
  • Pick the one or two flags that matter for your traffic, and leave the rest at the default.
  • Decide from a measurement when speculative decoding, FP8, or a compile level pays.
  • Debug a slow or broken server from the symptom you see.

Who this manual is for

You have called a model through an API, and now you want to serve an open model yourself. You know what a token and a GPU are. You have not read the code of a serving engine, and you do not need to.

How the parts are ordered

Parts 1 to 7 follow the order of your work. You start a server, size it, tune it for your traffic, add speed features, measure it, scale it, and run it. Each page answers one question and ends with a check that proves the change worked.

Part 8 explains how vLLM works inside. Read it when a default surprises you. The reference pages hold the flag table, the metrics, the incident index, and the lab notes.

PartWhat it covers
1 · StartInstall vLLM, serve a first model, check its health, name the numbers that judge a server, and set the common server options.
2 · Size ItMemory per token, out-of-memory fixes, unified memory on a DGX Spark, FP8 for the KV cache and the weights, and long contexts.
3 · Tune for Your TrafficRecipes for chat, RAG and agents, long documents, long sessions, JSON, batch jobs, multi-LoRA, reproducible outputs, RL rollouts, and reasoning models.
4 · Speed FeaturesSpeculative decoding, CUDA graphs and compile levels, async scheduling, and the attention backend.
5 · MeasureBenchmark your own server, watch it in production, and decide between vLLM and SGLang for one workload.
6 · Scale OutTensor, pipeline, and data parallelism, expert parallelism, prefill and decode on separate servers, Kubernetes, and other accelerators.
7 · Operate and DebugTroubleshooting by symptom, and running vLLM in production.
8 · How vLLM WorksProcesses, the scheduler, the KV block pool, attention backends, the model runner, compile and graphs, speculation, KV connectors, and history.
R · ReferenceLook up a flag, a metric, an incident, a version pin, or a figure here.

What we tested on

We tested on vLLM 0.31.0 with an NVIDIA L4 and a DGX Spark. The L4 served Qwen3-8B, and the DGX Spark served Qwen3-30B-A3B. Each measured number in this manual names its machine. The lab notes give the seeds, the clocks, and the full tables.

Four L4 sessions

The L4 did not run at one speed. Its SM clock changed with its temperature and with other work on the node. So the same Qwen3-8B load gave different times in different sessions. Each L4 table in this manual names its session. Compare two numbers only inside one session.

SessionDatesMedian SM clock1 user, median TPOT32 users, output tok/s
full clock, cooled before each run2026-10-17 to 2026-10-211,000 to 1,560 MHz60.4 ms273.9 to 275.1
throttled2026-10-22210 MHz at 1 user, 450 MHz at 32 users104.1 ms186.7
locked at 900 MHz2026-10-22881 to 900 MHz, 210 MHz for the 1-user baseline99.0 ms208.8
shared GPU, pool of 2,928 tokens2026-10-22368 to 450 MHz241.7 msnot run

A throttled GPU runs below its full clock because it is too hot or because it shares power with other work. A lock with nvidia-smi -lgc sets the highest clock. It cannot stop a hot GPU from slowing down below the lock.

vLLM 0.31.0 · db9527a · 2026-10-05 · Edition 2026.10