RTX 5070 12GB×2 + WSL2でvLLM系エンジン(Aphroditeフォーク。フラグと仕組みはvLLM共通)を1ヶ月常時運用。踏んだ地雷と最終設定。数値は実測ですが環境依存なので考え方を持ち帰ってください。
1. RAM: 上限管理はやめて自動返却に任せる
- 経緯:
memory=24GB→OOMでWSLごと落ちる→32GB→40GB→まだ起動失敗→調査→結果: 犯人はメモリ不足ではなくタスク競合。上限撤廃 -
autoMemoryReclaim:dropcache(積極返却)→ページキャッシュ削りすぎ→swap-outバースト→体感激重→結果:gradual一択 - swap: 既定の
%TEMP%方式→再起動のたび孤児vhdx残留(数日で4.5GB)→結果:swapfile=固定パス指定で解消 - 事故例: RAM23GB空き→なのにPC激重→
free -g→swap13GB/16GB蓄積→結果: スワップは勝手に戻らない。重いと感じたらまずfree -g
最終形の .wslconfig:
[wsl2]
# memory= は書かない(既定=物理RAMの約50%)
swap=16GB
swapfile=E:\\WSL\\swap.vhdx
[experimental]
autoMemoryReclaim=gradual
「メモリ不足で落ちた」と決めつける前に journalctl / dmesg でOOM実記録を確認。
2. VRAM: 崖はメーターに映らない、余裕2GB死守
WSLはVRAM溢れてもエラーを出さない(WDDMが黙ってRAM退避、WSL #11050)。しかもnvidia-smiに映らない。
- 実測: VRAM 11,868MiB→9〜30 tok/s→41MiB減らす→結果: 62.9 tok/s(6倍差)。12GBカードの実用上限≈11.8GB
- 誤診例: nvidia-smiで余裕485MiB→「VRAMは無罪」と判断→KV減らして実測→結果: 10万トークン文脈が2.3倍高速化。数値の余裕は証明にならない
- 症状: GPU100%なのに電力1/4以下+一律5〜6倍減速+再起動で直る→結果: それVRAM退避。直ったのではなく退避が解けただけ
鉄則: 余裕2GB以上。KVを増やすより余裕の方が速い。高速化設定はVRAM増加量とセットで判断、ベンチは長文+並行の実使用条件で。
3. vLLM設定の落とし穴
-
--gpu-memory-utilization 0.85で安心→実は--kv-cache-memory-bytes指定時は無視される(公式明記)→結果: 上限管理は起動後の実測で -
--max-num-batched-tokens 4096→ブロックサイズ(1056)の倍数に切り捨て→実処理3168、毎ステップ23%が死ぬ→結果: ブロックの倍数(4224)に。倍数は起動ログで確認 - 長文40Kの裏で短文が3.3秒待ち→
--long-prefill-token-thresholdを予算より小さく→結果: 待ち64%減(1.2秒)。予算と同値だと完全無効 - CUDAグラフ捕捉サイズ既定512→
max-num-seqsは64→使われないグラフに0.3〜0.5GB→結果: 64に合わせて即節約 - 「使い込むと遅い、再起動で直る」→実データ4,363件集計→速度は文脈長で決まる(2K:70 / 10万:37 / 14万:25 tok/s)→結果: 再起動は会話リセットで短くなるだけ。根本対策は履歴を短く保つ運用
- 机上計算「重み○GBだからKVに△GB残る」→CUDAコンテキスト・NCCLバッファ・compile一時領域を毎回見落とす→結果: 起動ログの実測を見るまで「足りる」と言わない。TP=2は「合計24GB」にならない
参考: 健全な状態の速度カーブ(2026-07-31実測)
上記の対策をすべて適用した状態(VRAM余裕2.1GB、9Bモデル、12GB×2 TP=2)での1人あたり生成速度:
| 履歴の長さ | 1人 | 2人 | 4人 |
|---|---|---|---|
| 500トークン | 72.0 t/s | 68.1 | 63.2 |
| 5,000 | 69.2 | 62.5 | 56.9 |
| 20,000 | 51.8 | 49.4 | 38.7 |
| 50,000 | 40.5 | 36.1 | 24.6 |
文脈が伸びるほど・同時人数が増えるほどなだらかに落ちるのが正常。全条件が一律に数倍遅い場合はVRAM退避(第2部)を疑う。なお50K×4人の応答開始は最大101秒 — これは長文prefillの物理コストで設定では消せない。
まとめ
「メーターに余裕がある」≠「足りている」。 WSLが挟まる環境では数値より症状を信じ、疑ったら実際に減らして測る。