WSL2は本物のLinuxカーネルが動くという性質上、大量のディスク読み書きなどすると大量にキャッシュとしてメモリが消費されてしまい、ホストのメモリを食いつぶしてしまいます。ホストにあまりメモリが積まれておらずホストが激重になってしまいましたので、WSL2のメモリ量を固定してみました。
Windows10のエクスプローラーで、%USERPROFILE% を開き、.wslconfig というファイルがなければテキストファイルとして新規にファイル作成し、以下を書き込みます。
[wsl2] memory=4GB swap=2GB
上記は、メモリを4GBに固定し、スワップに2Gを設定しています。ホストのメモリ量に応じて適宜変更してください。
変更後、WSL2 を再起動する必要があります。
コマンドプロンプトを管理者権限で開きWSL2を停止します。
C:> wsl --shutdown
再度、WSL2を起動(Ubuntu等のアイコンをクリック)し、Linuxのコマンドラインで以下を実行し、メモリ量やスワップの量が指定した値になっているかを確認します。
$ cat /proc/meminfo MemTotal: 4028424 kB MemFree: 3950724 kB MemAvailable: 3847712 kB Buffers: 5748 kB Cached: 8576 kB SwapCached: 0 kB Active: 12532 kB Inactive: 3752 kB Active(anon): 2012 kB Inactive(anon): 8 kB Active(file): 10520 kB Inactive(file): 3744 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 2097152 kB SwapFree: 2097152 kB Dirty: 48 kB Writeback: 0 kB AnonPages: 2060 kB Mapped: 4100 kB Shmem: 68 kB Slab: 21744 kB SReclaimable: 11912 kB SUnreclaim: 9832 kB KernelStack: 1480 kB PageTables: 108 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 4111364 kB Committed_AS: 3108 kB VmallocTotal: 34359738367 kB VmallocUsed: 0 kB VmallocChunk: 0 kB Percpu: 944 kB AnonHugePages: 0 kB ShmemHugePages: 0 kB ShmemPmdMapped: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Hugetlb: 0 kB DirectMap4k: 15360 kB DirectMap2M: 4177920 kB
参考 : https://docs.microsoft.com/ja-jp/windows/wsl/wsl-config