WSL2のメモリ設定入門|.wslconfigでWindowsの動作を重くしない最適化手順

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > WSL2のメモリ設定入門|.wslconfigでWindowsの動作を重くしない最適化手順
「WSL2を使い始めてから、なんとなくWindowsが重くなった気がする」

そう感じたことはありませんか?それはおそらく気のせいではありません。WSL2はデフォルトで、PCに搭載されている総メモリの最大50%(最大8GB)を自動的に使用するよう設計されています。16GBのPCなら気づかないうちに8GB、8GBのPCなら4GBをWSL2が確保してしまうことがあります。

この記事では、.wslconfigというWindowsの設定ファイルを作成して、WSL2が使えるメモリとCPU数を自分で制限する手順を解説します。設定後にfree -hコマンドで変化を確認するところまで、一緒に体験してみましょう。

この記事のポイント

・WSL2はデフォルトで総メモリの最大50%を自動使用するためPCが重くなりやすい
・%USERPROFILE%\.wslconfigを作成してmemoryとprocessorsを指定する
・設定後は wsl --shutdown でWSL2を再起動しないと変更が反映されない
・free -h と nproc で制限が正しく適用されたか確認できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

なぜWSL2はWindowsのメモリをたくさん使うのか

WSL2はWindowsとは別の仮想マシン(Hyper-V)の中でLinuxを動かしています。このLinux仮想マシンに対して、Windowsは「Linuxが必要なときはメモリを自由に使っていいよ」という設定をデフォルトにしています。

具体的には、Windows 11ではPC全体のメモリの最大50%(上限8GB)がWSL2に割り当てられる可能性があります。開発作業や重いツールを使っているときは実際にその領域まで消費されることがあり、Windowsのブラウザやアプリが急に遅くなる原因になります。

WSL2が使ったメモリはLinux側が不要と判断したら返却されることになっていますが、実際にはWindowsに戻りにくい状態が続く場合があります。このため、WSL2専用の上限をあらかじめ設定しておく方が安定して快適に使えます。

.wslconfigとは何か|Windowsから制御できる設定ファイル

.wslconfigは、WindowsがWSL2の動作を制御するための設定ファイルです。このファイルはデフォルトでは存在せず、自分で作成する必要があります。

保存場所はWindowsのユーザーフォルダ直下です。

・保存場所:C:\Users\(あなたのユーザー名)\.wslconfig
・環境変数表記:%USERPROFILE%\.wslconfig

このファイルに設定を書いておくと、次にWSL2を起動したときから制限が有効になります。

.wslconfigを作成して設定する手順

1. .wslconfigファイルを作成する

Windowsの「ファイル名を指定して実行」(Winキー + R)を開き、次のパスを入力してユーザーフォルダを開きます。

# Windowsの「ファイル名を指定して実行」(Win + R)に入力する %USERPROFILE%

開いたフォルダの中に.wslconfigというファイルが存在するか確認します。なければ、テキストエディタ(メモ帳・VS Codeなど)で新規ファイルを作成し、ファイル名を必ず.wslconfigとします(拡張子を含めたこの名前そのままで保存します)。

WSL2のターミナルからも作成できます。Ubuntuターミナルを開いて次のコマンドを実行します。

# WSL2のターミナルから直接作成する方法 # WindowsのユーザーフォルダはWSL2から /mnt/c/Users/ユーザー名 として見える WINUSER=$(cmd.exe /C "echo %USERNAME%" 2>/dev/null | tr -d '\r') touch /mnt/c/Users/$WINUSER/.wslconfig nano /mnt/c/Users/$WINUSER/.wslconfig

2. 設定内容を記述する

作成した.wslconfigに以下の内容を記述して保存します。この例は8GBメモリ・8コアCPUのPCでWSL2を使う場合の設定例です。

[wsl2] memory=4GB processors=4 swap=2GB localhostForwarding=true

各設定の意味は後の「設定項目の詳細」セクションで解説します。まずはこの内容で保存してください。

3. WSL2を再起動する

設定ファイルを保存したら、WSL2を完全に停止して再起動します。この手順を省くと設定が反映されません。

WindowsのコマンドプロンプトまたはPowerShellを開いて次を実行します。

# WSL2を完全に停止する(全ディストリビューションが終了する) wsl --shutdown # 数秒待ってからWSL2を再起動する(Ubuntuを起動する場合) wsl

4. 設定が適用されたか確認する

WSL2が起動したら、free -hnprocコマンドで設定を確認します。

# check memory limit after wsl --shutdown $ free -h total used free shared buff/cache available Mem: 3.8Gi 1.1Gi 2.5Gi 8.0Mi 190Mi 2.5Gi Swap: 2.0Gi 0B 2.0Gi # check cpu core count $ nproc 4

totalの列がmemory=4GBで指定した値(約3.8GiB)になっていれば設定成功です。nprocprocessors=4で指定した通りに表示されているはずです。

参考として、設定前のWSL2のデフォルト状態(16GBメモリのPC)では次のように表示されます。

# デフォルト状態(16GBメモリのPCの場合) $ free -h total used free shared buff/cache available Mem: 15Gi 2.3Gi 12Gi 8.0Mi 1.3Gi 13Gi Swap: 4.0Gi 0B 4.0Gi $ nproc 12

設定前は15GiB(約15GB)が割り当てられていたのに対し、設定後は3.8GiB(約4GB)に抑えられています。CPUコア数も12から4に制限されているのが確認できます。

設定項目の詳細

.wslconfigで設定できる主な項目を説明します。

memory:WSL2が使用できるメモリの最大値。4GB2048MBのように数値+単位で指定します。PCの搭載メモリの25~50%程度が目安です。
processors:WSL2が使用できるCPUの論理コア数。nprocで確認できる全コア数以下で指定します。
swap:スワップ領域のサイズ。メモリが不足したときに使われる仮想領域です。0にするとスワップなしになりますが、メモリ不足時に問題が起きる可能性があります。
localhostForwarding:trueにするとWSL2内で起動したサーバーにWindowsのブラウザからlocalhost:ポート番号でアクセスできます。デフォルトはtrueです。

用途別のおすすめ設定

PCのメモリ容量や作業内容に合わせて設定を調整しましょう。
用途・PC環境 memory processors
コマンド学習・軽い開発(8GBのPC) 2GB 2
Webアプリ開発・Docker利用(16GBのPC) 4GB 4
コンパイル・AI推論など重い処理(32GBのPC) 8GB 8
制限なし(デフォルト動作) 記述しない 記述しない

トラブルシュート|設定が反映されない場合

「wsl --shutdown」後に再起動しても変化がない

.wslconfigの保存場所を確認してください。C:\Users\ユーザー名\.wslconfigの直下に保存されているかどうか、エクスプローラーのアドレスバーで確認します。サブフォルダに入れた場合は認識されません。

また、拡張子にも注意が必要です。Windowsのメモ帳で保存すると.wslconfig.txtになってしまうことがあります。エクスプローラーで「表示」→「ファイル名拡張子」にチェックを入れて確認し、.txtが付いていれば削除してください。

メモリを少なく設定しすぎてWSL2が重くなった

memory=1GBのように極端に少ない値を設定すると、Linux側でメモリ不足が発生してかえって動作が不安定になります。最低でも2GBは確保することをおすすめします。設定後はfree -havailableの列に500MB以上の余裕があるか確認しましょう。

デフォルト設定に戻したい

.wslconfigを削除(またはファイル名を変更して退避)してからwsl --shutdownで再起動すると、デフォルトの設定に戻ります。

本記事のまとめ

やりたいこと 操作・コマンド
メモリ上限を4GBに設定する .wslconfigにmemory=4GBを記述
CPUコア数を4に制限する .wslconfigにprocessors=4を記述
設定を反映させる wsl --shutdown → WSL2再起動
メモリ制限が効いているか確認する free -h
CPUコア数が制限されているか確認する nproc
デフォルト設定に戻す .wslconfigを削除 → wsl --shutdown → 再起動
.wslconfigの設定はたった数行ですが、WSL2とWindowsの快適な共存に大きな差が出ます。PC全体の動作が重く感じているWSL2ユーザーは、まずこの設定を試してみてください。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
WSL2の環境が整ったら、次はLinuxサーバー管理の基礎を体系的に学んでみましょう。
無料マニュアルを受け取る >>

関連記事:Linuxスキルをさらに伸ばす

WSL2のメモリ設定が完了したら、実際のLinux運用で使うコマンドを深く学んでみましょう。

tmuxコマンドでターミナルを分割・管理する方法|セッション維持やペイン操作の実践例も
systemctlコマンドでLinuxのサービスを管理する方法|start・stop・enable・statusの使い分けも
nmcliコマンドでネットワーク接続を設定する方法|静的IP・DHCP・接続追加・削除の手順も
fail2banコマンドでブルートフォース攻撃を自動ブロックする方法|SSHの不正アクセス対策とトラブルシュートも
lsofコマンドで開いているファイルとポートを確認する方法|プロセス特定と障害切り分けの実践例も
journalctlコマンドでsystemdのログを確認する方法|日時指定・ユニット絞り込み・リアルタイム監視も
awkコマンドでテキストを加工する方法|列の抽出・集計やログ解析の実践例も

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。