Amazon Linux 2023のEC2にVSCodeからリモートSSHで接続をすると最初は普通に使えていても数分後に接続が途絶え、応答がなくなる事態が起きていました
解決策として以下のようなことを設定しました
ファイル監視によるリソースの負荷
VSCodeには「ファイル監視」機能があり、これにより大量のファイルが監視されると、EC2インスタンスのリソースが消費され、サーバーに過度な負荷がかかる可能性があります。この問題を防ぐためには、以下の手順を実行しました。
-
VSCodeの設定を調整:
メニューから「ファイル」→「ユーザー設定」→「設定」を選択。
「設定の検索」に「Watcher Exclude」と入力し、「パターン追加」 から ** を追加する。これにより、全てのファイルの監視が無効化され、リソース消費を抑えることができます。
設定を反映させるために、VSCodeを再起動します。 -
ファイル監視の上限設定:
現在のファイル監視上限を確認するために、以下のコマンドを実行します:
cat /proc/sys/fs/inotify/max_user_watches
この上限を引き上げるには、/etc/sysctl.confファイルに次の行を追加し、その後、設定を適用します:
fs.inotify.max_user_watches=524288
sudo sysctl -p
これにより、最大524,288個のファイルを監視できるようになります。ただし、リソースが限られている環境では、この数値を調整します。
https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in-this-large-workspace-error-enospc
同一ユーザーでの接続問題
複数のユーザーが同じEC2インスタンスに同一ユーザーで接続する場合、プロセスの競合やゾンビプロセスの発生が問題となることがあります。これを防ぐために、ユーザーごとに適切にアカウントを分け、リソース管理をすることが推奨されます。TeraTermでの接続と同時にVSCodeでも接続をしている場合などは注意が必要です。