0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2ローカルLLM運用で学んだメモリの教訓(RAM・VRAM・vLLM設定)

0
Last updated at Posted at 2026-07-31

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が挟まる環境では数値より症状を信じ、疑ったら実際に減らして測る。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?