Guidelines for deploying vLLM on NVIDIA HGX B200 instances in production.
Use all 8 GPUs for one model instance. Best for large models (GLM-5, DeepSeek V3.2) that require the full node's VRAM.
Docker Compose:
For models that don't need 8 GPUs, run multiple independent instances to maximize node utilization:
This achieves ~75,000 tok/s aggregate output throughput.
Run different models on different GPU subsets:
When all instances serve the same model, simple round-robin works:
Reverse proxy load balancing is not suitable for mixed-model deployments. A round-robin pool across ports serving different models will misroute requests and cause errors. For mixed-model setups, clients should target each model's port directly (e.g., http://localhost:8000 for MiniMax, http://localhost:8001 for Nemotron).
For smarter routing (e.g., KV-cache-aware routing), see NVIDIA Dynamo.
Key thresholds:
vLLM exposes Prometheus-compatible metrics:
Key metrics:
vllm:num_requests_running: Active requestsvllm:num_requests_waiting: Queued requests (should be near 0)vllm:gpu_cache_usage_perc: KV cache utilizationvllm:avg_generation_throughput_toks_per_s: Output throughputModel loading times vary significantly:
Plan for these startup times in your deployment automation. Use health check loops before routing traffic.
Models are large. Plan your disk budget:
All five models total ~1.7 TB. A typical NVIDIA HGX B200 instance has ~1.7 TB disk. You cannot have all models cached simultaneously. Use a sequential download/benchmark/delete workflow, or pre-download only the models you plan to serve.
Pre-download models before deploying:
vLLM handles in-flight requests during shutdown. Send SIGTERM and wait:
Redirect vLLM output to structured logs:
Key log patterns to monitor:
Failed requests: > 0: Investigate immediatelyWaiting: > 0 reqs: KV cache at capacity, consider scalingGPU KV cache usage: > 90%: Approaching memory limit
0 Comments
Be the first to comment and share your perspective with the community.