VmmemWSLのメモリ使用量を減らす方法|WSL2・Dockerの終了と上限設定でゲーム前のRAMを確認

VmmemWSLのメモリ使用量を減らす方法|WSL2・Dockerの終了と上限設定でゲーム前のRAMを確認

本記事にはアフィリエイト広告(Amazon・楽天市場等)のリンクが含まれています。

WINDOWS 11 / WSL2
VmmemWSLのメモリ使用量を減らす方法
ゲーム前に止めるか、動かしたまま上限を付けるか
ターミナルを閉じてもRAMを使い続けるVmmemWSL。保存して停止する手順と.wslconfigの上限設定を、戻し方まで
wsl --shutdown.wslconfig作業を保存してから停止

WSL2やDocker Desktopを使った後にタスクマネージャーを開くと、VmmemWSL(環境によってはVmmem)がRAMを使い続けています。ターミナルは閉じたのに、ゲームを起動する前の空きメモリが思ったより少ない状態です。原因はWSLが手放していないメモリで、止め方と上限の決め方で扱いが変わります。

ゲーム前だけで済むなら、作業を保存してからDocker Desktopを終了し、PowerShellで wsl --shutdown を実行するのが最短です。 WSLを動かしたままゲームもしたい場合は、%UserProfile%\.wslconfig の memory でWSL2の上限を決め、設定を反映してゲーム側とWSL側の両方を見ます。

VmmemWSLが大きいことだけでメモリリークとは判断できません。Linuxはキャッシュとして空きメモリを使うため、実際に動いている処理とキャッシュを分けて見る必要があります。実行中のサーバーやコンテナーは wsl --shutdown で止まるので、停止前の保存が先です。

目次

確認VmmemWSLの正体と、先に調べる3つのこと

VmmemWSLは、WSL2を動かす軽量な仮想マシンがホストのWindowsで使っているメモリを表示する項目です。WSL2の設定(.wslconfig)はこの仮想マシンに対するもので、メモリ量の上限(memory)も設定対象です。VmmemWSLを直接終了する操作ではなく、WSL側を正しく止めるのが基本です。

WSLのバージョンと状態PowerShellで wsl -l -v を実行します。各ディストリビューションが Running か Stopped か、VERSION が 2 かが分かります。VERSION が 1 のものは仮想マシンではないため、VmmemWSLの対象外です。
起動元のアプリDocker Desktop、開発ツール、AIツールの常駐、VS CodeのWSL接続など、WSLを起動したままにしている側を確認します。Docker Desktopは独自の docker-desktop ディストリビューションで動きます。
実稼働かキャッシュかWSLの中で free -h を実行すると、used と buff/cache が分かれて出ます。大半が buff/cache なら、処理がRAMを抱えているのではなく、Linuxがキャッシュとして保持している状態です。
wsl -l -v
wsl --list --running
wsl --version

この3つはどれも表示だけで、WSLの状態は変わりません。wsl --version が認識されない場合は古い組み込み版のWSLの可能性があり、Microsoft Store 経由の最新版へ更新してください。

!
RAMとVRAMは別の話

VmmemWSLが示すのはメインメモリ(RAM)です。GPUのVRAMはタスクマネージャーのパフォーマンスタブのGPUで見る別の数字なので、混同しません。Windows全体のRAM不足の見分け方は、Windows 11のメモリ使いすぎの記事で扱っています。

停止前WSLで動いている作業を保存してから止める

wsl --shutdown は、実行中のすべてのディストリビューションとWSL2の軽量ユーティリティ仮想マシンを直ちに終了します。猶予なしで止まるため、次の項目を先に片付けます。

  1. WSL内のエディターやIDEで開いているファイルを保存します。Windows側のVS CodeからWSLに接続している場合も同じです。
  2. ビルド、学習、ダウンロード、データベースの書き込みなど、途中で止めると困る処理が終わっているか確認します。
  3. Dockerのコンテナーで動かしているサーバーやデータベースを止めてよいか確認します。保存先をボリュームにしていない場合は、中のデータが失われないか確認します。
  4. ローカルで動かしているAIツールの生成中の処理や、常駐サービスに他の端末から接続していないかを確認します。
!
メモリ対策に使わないコマンド

wsl --unregister を実行すると、そのディストリビューションのデータ、設定、ソフトウェアがすべて完全に失われます。仮想ディスク(VHDX)やスワップファイルを手で削除する方法も含め、メモリを減らす目的では使いません。

停止wsl --terminate と wsl --shutdown の範囲の違い

コマンド止まる範囲向いている場面
wsl --terminate <ディストリビューション名>指定した1つのディストリビューションだけ他のディストリビューションは動かし続けたいとき
wsl --shutdown実行中のすべてのディストリビューションとWSL2の仮想マシンゲーム前にWSL2のメモリをまとめて手放したいとき、.wslconfigの変更を反映するとき
wsl --terminate Ubuntu
wsl --shutdown

Ubuntu の部分は wsl -l -v で表示された名前に置き換えます。--terminate は指定したディストリビューションだけを止めますが、他のディストリビューションが動いているあいだは仮想マシン自体が残るため、VmmemWSLが消えるとは限りません。全体を手放したいときは --shutdown を使います。

停止後にタスクマネージャーで変化を見る

wsl --shutdown はコマンドが戻った時点で停止の指示が終わっています。wsl --list --running で「実行中のディストリビューションがありません」と出ることを確認し、タスクマネージャーでVmmemWSLの行が消えたか、メモリが小さくなったかを見ます。なお、すべてのシェルを閉じて自然に停止するのを待つ場合は、停止まで約8秒かかる目安です。

再発停止してもVmmemWSLが戻ってくるとき

止めた直後にVmmemWSLが再び現れる場合は、何かがWSLを起動し直しています。次の順で確認します。

  • Docker Desktopが起動していないか。Dockerは自分の docker-desktop ディストリビューションでWSL2を使うので、Docker Desktopを終了してから wsl --shutdown を実行します。
  • スタートアップに登録された開発ツールや常駐ソフトが、WSLのコマンドを呼んでいないか。
  • VS CodeなどのエディターがWSL内のフォルダーを開いたままになっていないか。

どのアプリが起動したかを特定できないときは、アプリを1つずつ閉じて wsl --list --running を確認し、変化があった時点で原因を絞ります。ディストリビューションを削除して様子を見るのは、データを失うだけで切り分けになりません。

上限.wslconfig でWSL2のメモリ上限を決める

WSLを動かしたままゲームもするなら、.wslconfig で仮想マシンのメモリ上限を決めます。memory の既定値はWindowsの合計メモリの50%です。32GBのPCなら上限は約16GBまで膨らむ余地があり、ゲームと同時に使うと競合しやすくなります。

項目内容注意点
場所%UserProfile%\.wslconfig(例 C:\Users\ユーザー名\.wslconfig)既定では存在しないため、自分で作成する
適用範囲WSL2で動くすべてのディストリビューションWSL1のディストリビューションには効かない。1つだけに限定する設定ではない
反映のタイミングWSLの仮想マシンが起動し直したとき保存だけでは変わらない。作業を保存して wsl --shutdown が必要
書式[wsl2] の下に memory=数値GB単位を付ける。付けないとバイト扱い

既存の設定を控えてから書き足す

すでに .wslconfig がある場合は、書き換える前にコピーを保存します。ファイル名の先頭のドットと拡張子なしの形が重要で、メモ帳で保存するときは「ファイルの種類」を「すべてのファイル」にしないと .txt が付いてしまいます。エクスプローラーで拡張子を表示すると確認しやすくなります。手で編集する代わりに、スタートメニューの「WSL Settings」から設定する方法もあります。

notepad $env:USERPROFILE\.wslconfig

書式は次のとおりです。8GB は書式を示す例であり、おすすめの値ではありません。

[wsl2]
memory=8GB

上限の決め方は、WSL側とゲーム側の両方から逆算します。

  • WSLで普段の作業をしているときのVmmemWSLの最大値を、タスクマネージャーで数日分控える。
  • 遊ぶゲームの必要メモリ(推奨スペック表のRAM)と、ゲーム中のWindows全体の使用量を確認する。16GBと32GBの違いはゲーミングPCのメモリ容量の記事が参考になります。
  • PCの搭載RAMから、ゲームとWindowsに必要な分を引いた残りがWSLに回せる量。その範囲でWSLの作業が収まるかを見る。

上限を下げすぎると、WSL内でメモリ不足になり、処理やコンテナーが強制終了される場合があります。数値は一度で決めず、WSLの作業が普段どおり終わるかを見ながら調整します。Windows側のコミット上限の不足は別の診断になるため、メモリが足りているのにエラーが出る場合はコミット済みメモリの記事を先に確認してください。

回収autoMemoryReclaim は現在の既定値を確認してから設定する

WSLの autoMemoryReclaim を有効にすると、Windows側が仮想マシンの未使用メモリを取り戻せるようになり、Linuxカーネルのページキャッシュが大量のRAMを保持し続けるのを防げます。イメージのビルド後にほかのアプリへメモリを回したい場面向けの設定です。

[experimental] セクションに書き、値は次の3つです。

値動作向いている人
disabled自動のメモリ回収を行わない回収で作業に影響が出たとき
gradualキャッシュされたメモリをゆっくり自動で回収する作業中のキャッシュを急に手放したくない人
dropCacheキャッシュされたメモリをすぐ回収するビルド後などにRAMを早く返したい人
[experimental]
autoMemoryReclaim=gradual

古い解説には「既定では無効」と書かれたものがありますが、2026年10月時点のMicrosoftの資料では既定値が dropCache です。設定を足す前に、wsl --version でWSLのバージョンを確かめ、wsl --update で更新できるか見ます。何も書かない場合の挙動が資料どおりかを確かめてから、必要な値だけを書き足してください。この機能はWSL 1.3.10のリリースで実験的な機能として登場し、現在も「試験的な設定」の扱いです。

確認ゲーム側とWSL側の両方で効果を見て、悪化したら戻す

  1. WSLの作業を保存し、.wslconfig を保存して wsl --shutdown を実行します。
  2. wsl --list --running で停止を確認してから、WSLを起動し直します。
  3. WSLで普段の作業をして、VmmemWSLの最大値が設定した上限内に収まるか、処理が途中で落ちないかを確認します。
  4. ゲームを起動し、タスクマネージャーのパフォーマンスタブのメモリで、使用中とコミット済みに余裕があるか、カクつきやクラッシュが出ないかを見ます。

効果は、削減できたRAMの量やfpsの変化として一律には言えません。PCの搭載メモリ、WSLの使い方、ゲームごとに変わります。どちらか一方でも悪化したら、次の順で戻します。

  • 追加した行を消すか、控えておいた元の .wslconfig に戻す。
  • 作業を保存して wsl --shutdown を実行し、WSLを起動し直す。
  • 上限を上げる、または autoMemoryReclaim を disabled にするなど、1項目ずつ変えて様子を見る。

Windowsのゲーム全般の設定はWindows 11ゲーム高速化の記事にまとめています。

FAQVmmemWSLのよくある疑問

タスクマネージャーからVmmemWSLを終了してもよいですか?
おすすめしません。WSL側の保存や停止の手順を飛ばして仮想マシンを止めることになり、実行中のデータに影響するおそれがあります。作業を保存して wsl --shutdown を使います。
VmmemWSLが大きいのはメモリリークですか?
それだけでは判断できません。Linuxはキャッシュとして空きメモリを使います。WSLの中で free -h を実行し、used と buff/cache のどちらが大きいかを見てください。
wsl --shutdown でWindowsのデータは消えますか?
ディストリビューションの削除ではないので、ファイルは残ります。ただし実行中のプロセスやコンテナーは停止し、保存していない作業は失われます。
memoryを小さくすればゲームが快適になりますか?
ゲーム側のメモリが不足している場合は余裕が増えますが、効果の大きさは構成によって変わります。WSLの処理が落ちない範囲で、ゲームと両方を確認しながら調整してください。

まとめ保存して止めるか、上限を決めて共存させる

ゲーム前だけVmmemWSLのRAMを手放したいなら、作業を保存し、Docker Desktopを終了して wsl --shutdown を実行します。WSLを動かし続ける人は、.wslconfig の memory で上限を決め、WSL側とゲーム側の両方で確認し、悪化したら元の設定に戻します。ディストリビューションの削除や仮想ディスクの手動削除は使いません。

出典:Microsoft Learn Advanced settings configuration in WSL / Microsoft Learn WSLでの詳細設定の構成 / Microsoft Learn WSLの基本的なコマンド / Docker Docs WSL 2 backend on Windows / Docker Docs Settings / GitHub microsoft/WSL 1.3.10リリース

2026 BEST BUY — GPU 部門
ASRock Challenger Radeon RX 9060 XT 16GB OC (RX9060XT CL 16GO/AX)
16GB VRAM

RX 9060 XT 16GB

Amazon
玄人志向 Radeon RX 9070 XT 16GB(RD-RX9070XT-E16GB/TP)
WQHD高画質

RX 9070 XT 16GB

Amazon
MSI GeForce RTX 5070 12G VENTUS 2X OC
WQHD定番

RTX 5070 12GB

Amazon
MSI GeForce RTX 5070 Ti 16G VENTUS 3X OC
ミドルハイ

RTX 5070 Ti 16GB

Amazon
Amazon PICK UP — ゲーマー必携アイテム
Crucial PRO DDR5-6000 16GB×2 デスクトップ用メモリ XMP/EXPO対応
OC対応32GB

Crucial PRO DDR5-6000 32GB

Amazon
Sony INZONE M10S II 27型 Tandem WOLED 540Hz / HD 720Hz
540Hz最速

Sony INZONE M10S II

Amazon
CORSAIR RS120-R ARGB 120mm PWMファン 3個スターターキット
ARGB定番

CORSAIR RS120-R ARGB

Amazon
Elgato Game Capture 4K X
Elgato最強

Elgato 4K X

Amazon
CORSAIR VENGEANCE DDR5-6000MHz 32GB
DDR5定番

Vengeance DDR5-6000 32GB

Amazon
Writer
管理人アバター

ゲーミングスタイル管理人

自作PC愛好家・ゲーム歴15年超

ゲーミングPC歴は15年以上。毎年パーツを更新しながら最新トレンドを追いかけています。初心者にもわかりやすく、上級者も満足できる情報発信を心がけています。