それは突然に??
いつもローカルで開発をしていて以下のツールを使ってます
- docker desktop
- WSL 2
- vscode
前からその兆候はあったもののそれは突然でした。
WSL 2 を起動すると、VmmemWSL というプロセスがWSL 2 上にひょこんと現れると思います。
docker desktop を立ち上げて、docker を起動して、よし開発しようと思っていた矢先、、、タスクマネージャーを見ると、ディスクが100%!!???
vscode がフリーズして、
> wsl --shutdown
のコマンドをpowershell からたたき続ける。本当にとほほって感じでした。
なんで起こったのかな??
disk が急に100% になる現象なんて見たことないぞと思いましたが、原因が分からず、
docker volume が悪さしてるのかな??とかcontainer image ?? とか全然検討違いの所を見ていました。
結論、原因はメモリ不足でした。
top -c
をWSL 上で叩いてみると、メモリが97% swap が99%。。。。おっと。。。
これはhung up 寸前ではありませんか。
解決方法
今までは、.wslconfig でかなりメモリの制限をしてました
[wsl2]
memory=2GB
これでは全然足りなかったみたいです。
なので、この上限をあげて、様子を見ることにしました。
[wsl2]
memory=3GB
swap=3GB
これくらいにしてみるかと。設定を変更してあげて、wsl の再起動をして反映させてあげます。これで反映させてからは、WSL2 で安定して開発をすることができました。
まとめ
皆さんもdocker desktop で環境構築をする場合はWSL2 を使ってると思います。もしかしたら、自分のPC のスペックにもよるかもしれませんが、WSL 2 のプロセスでdisk100% になって困っているという方がいましたら .wslconfig で色々リソースの値を変えて試してみることをお勧めします。
(注意)*他にもいいやり方があるかもしれません