WSL2でswapをoffにする方法
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