🤔
WSL、Docker環境が重い時の対処法
最近WSL、Dockerを使用して開発しているとPCの動作が非常に重くなりタスクマネージャーを見てみるとメモリ使用率が90%を超えているということが多くまともに作業ができないということがあったため今回は自分が行なった対処法を記事にまとめました。
一般的な対処法
まず一般的な対処法としてC:\Users\[username]\.wslconfig
を設定しメモリの使用率を抑える方法があります
.wslconfig
[wsl2]
memory=8GB //こちらにwslが使用するメモリを指定する
processors=4
設定後WSLを再起動して設定を反映
PowerShell
C:\Users\username> wsl --shutdown
反映後は設定したメモリ量を超えなくなります
上記の対処法で発生した問題
自分の場合Dockerも一緒に使用していたのですが上記の方法ではDocker上で重いコンパイル処理などをしようとした際にリソース不足によるエラーが発生してしまうという問題が発生しました
不要なメモリを自動的に解放させる
WSL 1.3.10から不要になったメモリを自動的に開放させる設定を.wslconfig
に追加できるようになった
まず、以下のコマンドでWSLをアップデート
※現時点では--pre-release
を付けないとアップデートできないので注意
PowerShell
C:\Users\username> wsl --update --pre-release
wsl --version
で正常にアップデートできていることを確認したら、.wslconfig
ファイルを開く
.wslconfig
[wsl2]
memory=8GB
processors=4
//以下を追加
[experimental]
autoMemoryReclaim=true
これでWSLが不要なメモリを自動的に開放するようになった
結果
自分の環境ではこちらの設定適応前はWSLとDockerを起動していると常にメモリ使用率が90%以上だったが適応後は大体75%くらいに収まるようになった
Discussion