web関連
【Windows】「VmmemWSL」がメモリを圧迫している件
Dockerを使用時Windowsの動作が遅くなる。タスクマネージャーを確認すると「VmmemWSL」というプロセスがメモリを圧迫していたので解消するための備忘録。
「VmmemWSL」とは
「VmmemWSL
」は、Windows10/11でWSLを使っているときに見られるプロセスの一つ。
「WSL
」は、Windows Subsystem for Linuxの略で、Windows上でLinuxを動かすことができる機能。
そして、linuxがメモリを解放してくれないことがメモリを圧迫していることが原因のよう。
【改善方法】「.wslconfig」を使ってメモリを制限
改善方法の1つに「.wslconfig
」に使用するメモリを制限する記述をすることで改善が可能。
実行前:2.5GB(2,576MB)
実行後:1GB(1,024MB)
以下、手順。
C:\Users\ユーザー名\.wslconfig
にアクセス
※無い場合は.wslconfig
を作成.wslconfig
内に以下記述[wsl2] memory=1GB # Limits VM memory in WSL 2. If you want less than 1GB, use something like 500MB, not 0.5GB
- 記述後、保存
- コマンドプロンプトを開いて「
wsl --shutdown
(上記設定を反映させるためのシャットダウン)」を実行 - 実行後、右下に「再起動しますか?」的なポップアップが表示されるので「
Restart
」をクリック
以上で、.wslconfig
の記述が反映されて、メモリの上限も1GB(1,024MB)
に抑えることができる。
参考サイト:
wslのドキュメント
GitHub Issues
おまけ:「autoMemoryReclaim」機能でメモリを解消
上記、「GitHub Issues」を見ていると、autoMemoryReclaim
を使えばメモリを制限することなく解決ができそう。
[experimental]
autoMemoryReclaim=gradual
autoMemoryReclaim
…キャッシュされたメモリを自動的に解放gradual
…キャッシュされたメモリの低速解放dropcache
…キャッシュされたメモリの即時解放
参考:
WSLでの詳細設定の構成