近頃は業務でもプライベートでも WSL2 を使っているのだが、時々 (スリープ明け?) 100% に張り付いたままになってしまうことがある。guiApplication=false という設定を入れると改善する可能性がある。
ときどき CPU 100% 食ってる WSL2
WSL2 causing high CPU load #7893 - microsoft/WSL という issue が立っていて、2022-12-16 現在、この issue は close されているもののまだ直ってない問題のようだ。
自分の環境でもしばしばこの問題が起きていて、起きるたびにコマンドプロンプトから wsl --shutdown
のようなコマンドを打って WSL2 を強制終了するという、解決ともいえない解決をする日々が続いていた。この現象が発生すると WSL は基本的になんの操作も受け付けなくなってしまうので、ぶち止めるより他にないのである。ちなみに重たいプロセスは一切起動してなくてもこの現象は起こる。Vim しか動かしてなくても起こる。
結構わずらわしくて、こんなことなら VirtualBox に適当な Linux でも入れたほうが幸せだったりするんでは?みたいなことまで考えていた。
guiApplication=false で一応改善したっぽい
で、先の issue には guiApplication=false
をやってみなはれ、っていうコメントが投下されている。やってみたけど効かねえぞっていう返信もあり、まあ自分のところで効いたらラッキーくらいのノリで試してみたところ、どうも改善されたくさい。ありがたい。
具体的には、%userprofile%.wslconfig
というファイルを作って以下の内容を書き込む。WSL2 を再起動すれば設定が適用される。
[wsl2]
guiApplications=false
実はメモリもガバガバ食う WSL2
ちなみに自分はここにさらにメモリの上限を制限する設定を追加している。ほっとくとメモリをガバガバ上限なく食ってしまうという現象 (いわゆるメモリリーク) が起きてしまうんでその対策。こっちの問題も未解決っぽい。
WSL2 自体は結構良い「Linux 体験」だと思っているので、この手の問題が起きてしまうのはちょっと惜しい。今後の改善に期待。