BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【Docker Desktop for WSL2 backend】WSLが使うメモリ(VmmemWSL)を制限する

はじめに


こんにちは!
株式会社BFT名古屋支店・インフラ女子(?)のやまぐちです。

Dockerの環境を作ったぞ!っと喜んだのもつかの間、ずーーーーっとPCのファンが周り続け、タスクスケジューラで確認するとどうやら16GB積んでるのにメモリ使用率が96%とめちゃくちゃ高いではないですか!

内訳は「Docker Desktop」が6GB近く、「VmmemWSL」が4GB近くでしたが、「VmmemWSL」を制限したらDocker側もメモリ使用率が高騰することはなくなりました(今のところ)

ということでサクッと「VmmemWSL」のメモリ使用率を制限する方法を共有します。

WSLが使うメモリ(VmmemWSL)を制限する


対策はホームディレクトリ直下に「.wslconfig」ファイルを作成し、そこにメモリの上限を記載するです。

この「.wslconfig」ファイルは新規作成します。最初の「.」を忘れないようにしてください。

例えばメモリを2GBに制限したい場合は以下のように記載します。簡単ですね。

[wsl2]
memory=2GB

ホームディレクトリはSETコマンドを実行するとわかります。以下の結果ではHOMEPATHのところ、つまりユーザディレクトリ直下です。

C:\Users\a-yam>set | findstr HOME
HOMEDRIVE=C:
HOMEPATH=\Users\a-yam

メモリの他にもCPUやSwapなども割り当て可能です。詳細は以下の公式ページを参考にしてください。

WSL での詳細設定の構成 | Microsoft Learn

終わりに


今回はDocker Desktop for WSL2 backendを導入したらメモリ使用率が高騰した問題を解決しました。個人的にはDocker Desktopで一時期6GBも使われていたのが不思議なんですが、インストール直後だったからアップデートとかが走っていたのかもしれません。それにしても6GBは使いすぎな気がしますが…

以上、ここまで読んでいただきありがとうございました~ ^ ^