
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では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
次に読むおすすめ記事
WSL2とDockerを使ったWindows開発環境の構築手順や高速化設定、トラブル解決を体系的に学びたい方は、以下の完全ガイドもあわせて参考にしてください。

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

