サーバ寄稿雑記

vscode-serverのメモリ使用率が異常

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ディレクトリより深い層にするのは面倒なので避けたいかな。。。よくないけどね

コメント