目次
WSL2(Windows Subsystem for Linux 2)を使っていて、タスクマネージャを見ると WSL がメモリを大量に消費していて Windows 全体が重い 状況になった人向けの記事です。.wslconfig ファイルでメモリ上限・CPU・スワップなどを明示的に指定して制御する方法をまとめます[1]。
なぜ WSL2 はメモリを大量に使うのか
WSL2 はデフォルトで 「Windows 全体メモリの50%」または「最大8GB」のいずれか少ない方 までメモリを使えるように設定されています[1:1]。Linux カーネル側がキャッシュとして抱え込むため、一度確保したメモリはなかなか解放されません。.wslconfig でこの上限を明示的に下げると、Windows 側に余裕が生まれます。
.wslconfigファイルの作成
Windows のユーザーホームディレクトリ(例: C:\Users\あなたのユーザー名)に .wslconfig というファイル名で作成します。
エクスプローラーから手動で作成しても、PowerShell からコマンドで作成しても構いません。
New-Item ~/.wslconfig
.wslconfigの設定を記入する
作成したファイルをテキストエディタで開いて、[wsl2] セクション以下に設定値を記入します。最小構成はメモリ上限の指定だけでOKです。
[wsl2]
memory=4GB
この例では WSL2 が使えるメモリを最大4GBに制限しています。手元の環境に合わせて 8GB、2GB などに変更してください。
主要な設定項目
メモリ以外もよく使う項目をまとめます[1:2]。
| 設定キー | 内容 | 例 |
|---|---|---|
memory |
使用可能なメモリ上限 | memory=4GB |
processors |
使用可能な論理CPU数 | processors=2 |
swap |
スワップ領域のサイズ(0で無効化) | swap=2GB |
swapFile |
スワップファイルの保存先 | swapFile=C:\\temp\\wsl-swap.vhdx |
localhostForwarding |
localhost ポート転送の有効化 | localhostForwarding=true |
実用的な複数項目指定の例:
[wsl2]
memory=4GB
processors=2
swap=2GB
localhostForwarding=true
WSL2を再起動する
.wslconfig の変更を反映するには、WSL2 を一度シャットダウンして再起動する必要があります。
wsl --shutdown
この後、ターミナルなどで WSL2 を起動し直せば新しい設定が適用されます。タスクマネージャでメモリ消費が指定上限以下に抑えられていることが確認できます。
よくあるエラー
設定変更でつまずきがちなケースです。
設定が反映されない
wsl --shutdown を忘れているか、または .wslconfig のファイル名が間違っているケースが大半です。.wslconfig(先頭ドット必須)であることを確認し、配置場所も C:\Users\<ユーザー名>\.wslconfig(ユーザーのホーム直下)であることを確認してください。
.wslconfig を置いても効果が無い
メモリ上限を memory=4GB のように指定しても、WSL2 内のプロセスがメモリを4GBまで使い切った場合、Linux カーネルのキャッシュが膨らむまで体感では「使い切っているように見える」ことがあります。それでもWindows全体には影響しないので、Windows側のタスクマネージャ表示が問題ない範囲なら正常動作です。
まとめ
WSL2 のメモリ問題は .wslconfig で memory・processors・swap を明示指定すれば対処できます。手順は「ホーム直下に .wslconfig を作る → 設定を書く → wsl --shutdown で再起動」の3ステップ。設定が反映されないときは ファイル名(先頭ドット)と配置場所 を最初に疑うのが近道です。
参考文献
WSL での詳細設定の構成 - Microsoft Learn (2026-05-10 アクセス) ↩︎ ↩︎ ↩︎
