๐ŸŒฑโšก
GPU Garden
Terminal CLI Triage & Memory Guides
Launch Matchmaker โ†’
CLI Error Fix Status: Triage Verified

Fix vLLM RuntimeError: Free memory on device is less than desired GPU memory utilization (--gpu-memory-utilization)

vllm-gpu-memory-utilization-oom ยท Immediate Memory Rescue
Exact Terminal Stderr / Flag Signature
ValueError: Free memory on device (X/Y GiB) on startup is less than desired GPU memory utilization (0.9, Z GiB)

Root Cause & Memory Allocation Mechanics

Unlike relative memory flags that take 90% of *currently free* VRAM, vLLM's `--gpu-memory-utilization` parameter (default `0.90`) specifies a fraction of *total physical* GPU capacity (`total_gpu_memory * 0.90`). On a 24.0 GiB RTX 3090 or RTX 4090, `0.90` demands at least `21.60 GiB` of completely untouched VRAM at startup. If Ubuntu `gnome-shell`/`Xorg`, Windows Desktop Window Manager, or a lingering `VLLM::EngineCore` child process from a `Ctrl+C` interrupt is holding `2.8 GiB` (`21.2 GiB` free), vLLM's pre-flight check (`free_gpu_memory < total_gpu_memory * utilization`) immediately aborts with a `ValueError`.

Exact CLI Remediation Commands

Ollama Resolution
# Inspect and unload background Ollama models occupying VRAM
ollama ps
ollama stop 
# Or stop the background service completely before launching vLLM:
sudo systemctl stop ollama
Llama.cpp Resolution
# Find and terminate zombie CUDA processes holding GPU memory on Linux
nvidia-smi
sudo fuser -v /dev/nvidia* | awk '{for(i=1;i<=NF;i++) if ($i ~ /^[0-9]+$/) print $i}' | xargs -r kill -9
vLLM Resolution
# Lower --gpu-memory-utilization to match actual free VRAM after OS overhead
vllm serve model \
  --gpu-memory-utilization 0.82 \
  --max-model-len 8192 \
  --kv-cache-dtype fp8
Option 1: Hardware Upgrade

Upgrade VRAM on Amazon

If software quantization cannot bridge your memory deficit, explore 16GBโ€“24GB GPUs.

Option 2: Cloud Rental (On-Demand)

Rent Cloud GPUs on RunPod & Vast.ai

Eliminate local VRAM limits immediately by running large workloads on 80GB A100 or H100 pods.

Frequently Asked Questions

Why does nvidia-smi show 0 processes on Windows/WSL2 even when vLLM reports 3 GiB used?

Inside WSL2, `nvidia-smi` cannot list Windows host processes (such as Chrome hardware acceleration, Discord, or Windows DWM) that share the WDDM GPU memory pool. Open Windows Task Manager -> Performance -> GPU to see host VRAM usage.

How do I clean up zombie vLLM ray or multiprocessing workers after a crash?

Run `pkill -9 -f 'vllm|VLLM|ray'` in your Linux terminal, then verify `nvidia-smi` reports `< 500 MiB` used before restarting `vllm serve`.

Verify Your Hardware Memory Math

Use the GPU Garden Matchmaker to calculate exact KV-cache footprints and avoid future OOM crashes.

Open Interactive Calculator โ†’