はじめに
サーバー上で快適に作業するために、Vscodeからssh接続し、ファイル操作できる環境を構築したときのメモ。
Remote SSH プラグインのインストール
VSCodeの左上からインストール。
ssh config に ssh 接続情報を追加
/Users/ユーザ名/.ssh/config に以下の内容を追加する。
Host [ホスト名]
HostName [接続先]
Port [ポート]
IdentityFile [認証キーのパス]
User [接続ユーザー名]
例えば、
$ ssh -p 30000 user@192.168.1.1 -i ~/.ssh/id_rsa_test
で接続する場合、ホスト名は仮にisuconとして、以下のように設定する。
$ sudo nano ~/.ssh/config
Host isucon
HostName 192.168.1.1
Port 30000
IdentityFile ~/.ssh/id_rsa_test
User user
configを記載すると、
$ ssh [ホスト名]
で接続できるようになる。
※ 鍵の作成は省略。参考:Windows10標準機能でSSH認証用の公開鍵と秘密鍵を作成する方法
VSCodeでSSH接続
左下のアイコン→SSH Targetから、上記で接続したホスト名を選択する。新しいVSCodeのウィンドウが表示される。
max_user_watches の変更
このままだと大規模のファイルが見れなくなるので、max_user_watchesを変更する
$ cat /proc/sys/fs/inotify/max_user_watches
8192
$ sudo nano /etc/sysctl.conf
~~~ 追記
# max_user_watches
fs.inotify.max_user_watches=524288
$ sudo sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
fs.inotify.max_user_watches = 524288
$ cat /proc/sys/fs/inotify/max_user_watches
524288
監視できるファイルの最大数が524,288とのこと。
各ファイル ウォッチは 1080 バイトを使用するため、524,288 個のウォッチがすべて消費されると仮定すると、上限は約 540 MiB になるので、メモリ制約のある場合は数を減らしておく。
VSCodeがサーバリソースを食い散らかす対策
複数人でVSCodeのRemote SSHで接続していたサーバーの反応が異常に遅くなることがあった。
【VSCode使用者注意】サーバーリソース食い散らかすマンから解放される唯一の方法
記事によると、VSCodeでSSH接続する際にサーバーに負荷をかけてしまうことがあるらしい。まさにこの現象。
対策として、この記事に倣って、ファイル監視を無効化する。
- 画面上部メニュー「ファイル」→「ユーザー設定」→「設定」を選択
- 「設定の検索」に Watcher Exclude と入力
- 「パターン追加」 から ** を追加する
- 設定を反映させるために、VSCodeを再起動
※ デメリットあり
ただし、トレードオフとして、gitのファイル変更状況がリアルタイムで反映されなくなるので、自身でコミットなどをする際には、手動でファイルの変更を確認することになります。
最後に
間違っていること、問題点、もっといい方法など見つかれば修正します。