WSL2 に割り当てるメモリサイズを手動で固定値を設定する方法 | Snow System

![](windowswsl2-fixed-memory-allocation/wsl2-fixed-memory-allocation.png)

WSL2 を利用しているとメモリが枯渇することがあります。

ホスト側(Windows 側)に搭載したメモリによって WSL2 に割り当てられるメモリ量が自動的に決まってしまうため、自分が割り当てたい以上のメモリが割当たることもあります。

また、ホスト側(Windows 側)の搭載メモリが多い場合は、WSL2 側にもっとメモリを割り当てたいのに。と感じることもあるかもしれません。

今回は、WSL2 に割り当てるメモリサイズを指定する方法についてご紹介します。

目次

  1. 初期状態(デフォルト)の WSL2 のメモリ割当量はどのように決まるのか
  2. WSL2 のメモリ割り当て量を指定する方法
  3. .wslconfig の場所
  4. .wslcofnig の記載方法
  5. WSL2 のメモリ割り当て設定を反映させる
  6. WSL2 のメモリ割り当てサイズを確認する
  7. その他の「.wslconfig」のおすすめ設定(Swap オフ)

初期状態(デフォルト)の WSL2 のメモリ割当量はどのように決まるのか

まずは、何も設定しない場合の WSL2 のメモリ割り当て量がどのように決まるかを知っておきましょう。

Microsoft のリリースノートのビルド 20175に以下の記載があります。

> WSL2 VM の既定のメモリ割り当てを、ホスト メモリの 50% または 8 GB のどちらか少ない方になるように調整します

具体的に、本体 PC 側のメモリサイズが 8GB、16GB、32GB の場合については以下の通りになります。

本体 PC のメモリサイズWSL に割り当てられるメモリサイズ
8GB4GB
16GB8GB
32GB8GB

WSL2 のメモリ割り当て量を指定する方法

WSL2 のメモリ割り当て量の設定はホスト側(Windows 側)の「.wslconfig」というファイルで行うことができます。

.wslconfig の場所

.wslconfig は以下のパスに作成することで、WSL2 起動時に設定が読み込まれる仕組みになっています。

C:\Users\[ユーザ名]\.wslconfig

初めて設定する際には「.wslconfig」ファイルは存在しませんのでファイルを作成する必要があります。

「.wslconfig」というファイル名でテキストファイルを作成しましょう。

.wslcofnig の記載方法

「.wslconfig」は ini ファイルの記載ルールと同じです。

以下のように設定することで、WSL2 に割り当てるメモリサイズを 4GB 固定にすることができます。

[wsl2]
memory=4GB

WSL2 のメモリ割り当て設定を反映させる

「.wslconfig」の設定を行っても、WSL2 が既に起動している場合は反映されませんので、WSL2 の再起動を行う必要があります。

WSL2 の再起動手順については、PC の再起動を行わずに実行することができます。

具体的な手順については、以下の記事を参考にしてください。

WSL2 のメモリ割り当てサイズを確認する

WSL2 のターミナルを開き、free コマンド等で確認してみましょう。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3930         418        2959           1         552        3300
Swap:             0           0           0

指定したメモリ量の 4GB 割当られていることが確認できました。

その他の「.wslconfig」のおすすめ設定(Swap オフ)

WSL2 の Swap をオフにする方法をご紹介します。

WSL2 の Swap が有効になっている場合、メモリが余っている場合でも大量に読み書きが発生します。 SSD の寿命にも関係しそうなので、停止したいところです。

また、WSL2 上に kubernetes 環境を構築する際に Swap がオフであることが条件となっているなど、システム的な要件でSwap をオフに設定したい場合があります。

しかし、WSL2 の Swap は WSL2 コンソールで「sudo swapoff -a 」としても停止することができません。

WSL2の場合はメモリ割り当てサイズと同様にSwapのオフについても「.wslconfig」で設定する必要があります。

以下の通り設定することで Swap をオフにすることができます。

[wsl2]
swap=0

Swap オフの設定方法については以下の記事でも紹介しています。

本格的なサーバー運用ならVPSがおすすめ

自宅のPCで構築した環境をインターネット上に公開して本番運用するなら、初期費用無料で導入しやすい「さくらのVPS」などのクラウド環境が便利です。

PR

次に読むおすすめ記事

WSL2とDockerを使ったWindows開発環境の構築手順や高速化設定、トラブル解決を体系的に学びたい方は、以下の完全ガイドもあわせて参考にしてください。

WSL2+Dockerで作るWindows開発環境構築まとめ
WindowsマシンでWeb開発やバックエンド開発、AIアプリ開発を行う際、いまや欠かせない標準構成となったのが「Windows + WSL2 + Docker + VS Code」の組み合わせです。かつては「Web開発といえばMac一択」...