WSL2でswapをoffにする方法

2020年8月10日Windows

WSL2でswapをオフにする方法についてまとめました。

sudo swap off -aでは無理

きっかけは、WSL2の Ubuntu kubeadm kubernetes 環境を構築しようとした際に、利用条件に「swapをオフにすること」と書かれていたため、 sudo swapoff -a などのコマンドをUbuntu上で実行したのですがswapがオフになりませんでした。

WSL2の場合、UbuntなどLinux側では設定はできないようです。

.wslconfigファイルでswapを設定する

ユーザディレクトリに .wslconfig ファイルを作成することでswapの容量を指定しWSLを起動することができますので、swapの値を0にして対応しましょう。

C:\Users\[ユーザ名] .wslconfig ファイルを作成します。

.wslconfig で以下のように設定すると swap を0(つまりoff)にすることができます。

[wsl2]
swap=0

 

.wslconfigで設定できる項目

.wslconfigではswap意外にmemoryの容量なども指定できます。

興味のある方はhttps://docs.microsoft.com/ja-jp/windows/wsl/wsl-configで確認してみましょう。

 

swapがoffになっているか確認する

free コマンドで確認すると0になっていることがわかります。

実際に kubeadm でkubernetesクラスタを作成しましたがswapがオフと認識されました。

$ free
              total        used        free      shared  buff/cache   available
Mem:        6088196      556860     3369892        1868     2161444     5295156
Swap:             0           0           0

Windows

Posted by snow