TL;DR
vscodeを用いたsshを利用していると、頻繁にcrashしてvscodeが落ちる。メモリ使用量を確認すると、vscode-server関連のメモリ使用量が20GBを超えている

主要因として、sshで開いていたディレクトリをhome/user直下にしていたこと。
これにより、GitHub copilot chatがhomeディレクトリ上を走査して負荷をかけていた。
一時的に、Github copilot chatを無効化すると解消した。
ターミナルでの様子
freeコマンドでメモリの使用量が30GB近くあり、普段と様子がおかしいことを確認。とりあえず、メモリ使用量の多いプロセスをps auxで調べてみる。結果としてvscode-server関連のプロセスが20GBくらいメモリを使用していた。
ps aux | grep -E 'extensionHost|fileWatcher|vscode-server|Stable-8b640eef' | grep -v grep
実行中のプロセスのcpu使用量も異常で、重複気味に立ち上がっている。crashして再度開いたときに前回のプロセスも走ってるのかな。
extensionHost 57.2% fileWatcher 58.2% extensionHost 106% fileWatcher 100% extensionHost 160% fileWatcher 99.9%
vscode.jsonでsearch.excludeやfiles.watcherExcludeを設定してみたが、効果なし。
$ LOGDIR=$(ls -1dt ~/.vscode-server/data/logs/* | head -1) $ grep -RniE 'workspace|workspaceFolder|rootPath|folder' "$LOGDIR" | head -100
でみてみると、copilot関連のプロセスが暴走していた。copilot chatを無効化すると落ち着いた。logを見てみると、homeディレクトリ(学習用の容量100GBくらいのデータセットも)走査していた。
gitやvscode内検索はgitignoreやsearch.excludeでこれまでどうにかなっていた。
ssh先をhomeディレクトリにするのをやめるか、copilotを無効化するかを天秤にかけた結果、copilot無効化を選択した。
今後の方針
データセットを別マウントのssdに保存する。データセットのサイズ自体が小さいので、これまで惰性でhomeディレクトリに入れていた。データセット用のマウントをhomeディレクトリ以外の場所にフォルダ作って、copilotが走査しないようにする。
惰性で溜めていたツケを払うよう催促されたが、もう少し延滞することにした。近々ちゃんと返済しないとね。
ssh先をhomeディレクトリより深い層にするのは面倒なので避けたいかな。。。よくないけどね
コメント