問題
- WindowsでDockerを使用するためにWSL2を使用するとWindowsホストのメモリ使用率が異常に高くなり、動作も重くなってしまう。
-
Vmmem
というプロセスが大量にメモリを使用している。 -
Vmmem
はWSL2が仮想マシンを起動させる際nのプロセス。
対応
-
.wslconfig
というファイルを作成しメモリの使用量を指定する。
.wslconfigを作成するパス
C:\Users\[ユーザ名]\.wslconfig
.wslconfigの内容
[wsl2]
memory=1GB
注意
-
.wslconfig
の記載ルールはiniファイルと同じ - すでにWSL2を起動している場合、ファイル作成、記載が終わったらWSL2を再起動させて設定を反映させる。
その他
- WSL2 の Swap が有効になっている場合、メモリが余っている場合でも大量に読み書きが発生するため、オフにしておくのがおすすめ
.swapをオフにしておくのがおすすめ
[wsl2]
swap=0
最後に
-
WSL2は、何も設定をしていないと大量にメモリを消費する。
WSL2 VM の既定のメモリ割り当てを、ホスト メモリの 50% または 8 GB のどちらか少ない方になるように調整します [GH 4166]。
-
.wslconnfigを作成し、メモリの使用量を固定化させる。