0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Remote-SSHこわい

0
Last updated at Posted at 2026-10-27

はじめに

Remote-SSHでサーバーに接続したところ、CPU使用率が上がった。
なぜなのか気になったのでQiitaの記事も参考にしつつ、自分でも実際に確かめてみた。

Remote-SSHについて

Remote-SSHは、VS CodeからSSHでリモートマシンに接続するための拡張機能。
接続するとリモート側にVS Code Serverがインストールされ、ワークスペースに関わる処理や拡張機能の多くがリモート側で実行される。
リモート側に置いたファイルを、ローカルでVS Codeを使うのと近い感覚で編集できる(公式ドキュメント)。

Remote-SSHで何が起こるか

AWS EC2インスタンスを立てて試した。
インスタンスタイプはt3.small(vCPU: 2、メモリ: 2 GiB、OS: Amazon Linux)。
まずSSHで接続し、中身を確認する。

[ec2-user@ip-xx-xx-xx-xx ~]$ pwd
/home/ec2-user
[ec2-user@ip-xx-xx-xx-xx ~]$ ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .ssh

必要最低限のファイルしかない。
Remote-SSHで接続すると、次のファイルやディレクトリが増えた。

[ec2-user@ip-xx-xx-xx-xx ~]$ pwd
/home/ec2-user
[ec2-user@ip-xx-xx-xx-xx ~]$ ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .cache  .config  .copilot  .dotnet  .ssh  .vscode-server  .wget-hsts
[ec2-user@ip-xx-xx-xx-xx ~]$ du -h --max-depth=1 | sort -hr
720M	./.vscode-server
720M	.
256K	./.dotnet
12K	./.copilot
12K	./.cache
4.0K	./.ssh
4.0K	./.config

いろいろ増えている。
ほかの項目は小さいが、.vscode-serverディレクトリは約700 MBに達していた。

[ec2-user@ip-xx-xx-xx-xx ~]$ ps -aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

~~(略)~~

ec2-user    2677  3.0  1.2  45816 24172 ?        Sl   07:32   0:00 /home/ec2-user/.vscode-server/code-2a59476c9bfcb90b3d
ec2-user    2703  0.0  0.0 221388  1888 ?        S    07:32   0:00 sleep 180
ec2-user    2704 37.7  1.1  42632 22292 ?        Ssl  07:32   0:08 /home/ec2-user/.vscode-server/code-2a59476c9bfcb90b3d
ec2-user    2711  0.0  0.1 223008  3444 ?        S    07:32   0:00 sh /home/ec2-user/.vscode-server/cli/servers/Stable-2
ec2-user    2715 32.2  9.3 1844496 183196 ?      Sl   07:32   0:04 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
root        2752  0.0  0.0      0     0 ?        I    07:32   0:00 [kworker/u8:0-events_unbound]
ec2-user    2753 50.4 25.3 19186524 495132 ?     Sl   07:32   0:06 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
ec2-user    2765  0.0  0.1 223008  3444 ?        S    07:32   0:00 sh /home/ec2-user/.vscode-server/cli/servers/Stable-2
ec2-user    2766  0.9  2.9 1459016 57972 ?       Sl   07:32   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
ec2-user    2770  8.0  6.1 1786608 121240 ?      Sl   07:32   0:01 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
root        2817  0.0  0.0      0     0 ?        I    07:32   0:00 [kworker/u8:2]
ec2-user    2818 18.4  8.5 18597140 168032 ?     Sl   07:32   0:02 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
ec2-user    2836  1.9  3.6 1563856 71596 ?       Sl   07:32   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
ec2-user    2881  1.6  2.7 735888 54084 ?        Sl   07:32   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
ec2-user    2902  0.0  0.1 223608  2972 pts/0    R+   07:33   0:00 ps -aux

その後、Remote-SSHで接続したVS Codeから、約1.6 MBある.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/server-main.jsを開いた。
※ Stable-の後ろにある文字列は、このVS CodeビルドのコミットIDである(VS Code 1.141.0のソースコード)。

[ec2-user@ip-xx-xx-xx-xx ~]$ ps -aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

~~(略)~~

ec2-user    3538  1.1  1.2  46036 24032 ?        Sl   07:45   0:01 /home/ec2-user/.vscode-server/code-2a59476c9bfcb90b3d
ec2-user    3565  0.0  0.0 221388  1900 ?        S    07:45   0:00 sleep 180
ec2-user    3616 11.2 24.9 19814740 487792 ?     Sl   07:45   0:12 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
ec2-user    3628  0.2  3.1 1676028 61912 ?       Sl   07:45   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
ec2-user    3733  0.7  6.7 1486580 131900 ?      Sl   07:46   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
root        3749  0.0  0.3  18212  7420 ?        S    07:47   0:00 systemd-userwork: waiting...
ec2-user    3809 64.5  8.0 1549140 158376 ?      Rl   07:47   0:01 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
ec2-user    3810 65.5  7.8 1546832 154268 ?      Rl   07:47   0:01 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
ec2-user    3823 46.0  5.0 1462448 98728 ?       Sl   07:47   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59
root        3830  0.0  0.3  18212  7412 ?        S    07:47   0:00 systemd-userwork: waiting...
ec2-user    3831  0.0  0.1 223608  2964 pts/0    R+   07:47   0:00 ps -aux

この時点で、CPU使用率の高いプロセスが複数見られた。
しばらくすると...
CPU-usage.jpg
インスタンスが応答しなくなった。

(完)


一体何が起きたのか

先ほどの出力ではプロセス名が省略されていたため、別のインスタンスでコマンド全体が表示されるようにして確認した。

[ec2-user@ip-xx-xx-xx-xx ~]$ ps -auxww
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

~~(略)~~

ec2-user    2380  4.5  1.1  42592 22196 ?        Ssl  01:09   0:09 /home/ec2-user/.vscode-server/code-2a59476c9bfcb90b3ddc372c36762471b7dfad1c --cli-data-dir /home/ec2-user/.vscode-server/cli agent host
ec2-user    2389  0.0  0.1 223008  3384 ?        S    01:09   0:00 sh /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/bin/code-server --connection-token=remotessh --accept-server-license-terms --agent-host-bridge-port=37611 --agent-host-bridge-host=127.0.0.1 --start-server --enable-remote-auto-shutdown --socket-path=/tmp/code-18d60803-a93d-4a5b-b8ee-58fa312b428e
ec2-user    2393  4.8  8.8 1837528 173444 ?      Rl   01:09   0:09 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/server-main.js --connection-token=remotessh --accept-server-license-terms --agent-host-bridge-port=37611 --agent-host-bridge-host=127.0.0.1 --start-server --enable-remote-auto-shutdown --socket-path=/tmp/code-18d60803-a93d-4a5b-b8ee-58fa312b428e
root        2430  0.0  0.0      0     0 ?        I    01:09   0:00 [kworker/u8:0-events_unbound]
ec2-user    2443  0.0  0.1 223008  3412 ?        S    01:09   0:00 sh /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/bin/code-server --socket-path /tmp/code-d0963734-d2e6-4297-a865-7f5c730c471f --agent-host-path /tmp/code-9b0e02b6-3ea9-4ecf-a347-73b218aca8c9 --start-server --accept-server-license-terms --enable-remote-auto-shutdown --without-connection-token
ec2-user    2448  0.5  4.9 1751752 97252 ?       Sl   01:09   0:01 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/server-main.js --socket-path /tmp/code-d0963734-d2e6-4297-a865-7f5c730c471f --agent-host-path /tmp/code-9b0e02b6-3ea9-4ecf-a347-73b218aca8c9 --start-server --accept-server-license-terms --enable-remote-auto-shutdown --without-connection-token
ec2-user    2495  1.4  7.8 18569848 152540 ?     Sl   01:09   0:02 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/bootstrap-fork --type=agentHost --logsPath /home/ec2-user/.vscode-server/data/logs/20261009T010913 --user-data-dir /home/ec2-user/.vscode-server/data --telemetry-level all
ec2-user    2513  0.1  3.7 1630992 74176 ?       Sl   01:09   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/bootstrap-fork --type=ptyHost --logsPath /home/ec2-user/.vscode-server/data/logs/20261009T010911
ec2-user    2558  0.2  2.7 735892 53316 ?        Sl   01:09   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node_modules/@github/copilot-sdk-linux-x64/prebuilds/linux-x64/copilot-runtime --headless --no-auto-update --log-level info --stdio --no-auto-login
ec2-user    2692  0.9  1.2  46072 24084 ?        Sl   01:10   0:01 /home/ec2-user/.vscode-server/code-2a59476c9bfcb90b3ddc372c36762471b7dfad1c command-shell --cli-data-dir /home/ec2-user/.vscode-server/cli --parent-process-id 2674 --on-host=127.0.0.1 --on-port
ec2-user    2718  0.0  0.0 221388  1884 ?        S    01:10   0:00 sleep 180
ec2-user    2838 52.9 25.8 19193216 505124 ?     Rl   01:12   0:06 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node --dns-result-order=ipv4first /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/bootstrap-fork --type=extensionHost --transformURIs --useHostProxy=false
ec2-user    2851  1.7  3.0 1675340 60228 ?       Sl   01:12   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/bootstrap-fork --type=fileWatcher
ec2-user    2888  0.2  0.2 224252  5196 pts/1    Ss+  01:12   0:00 /bin/bash --init-file /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh
ec2-user    2929 75.3 16.0 1649696 313980 ?      Rl   01:12   0:04 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node --max-old-space-size=3072 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/extensions/node_modules/typescript/lib/tsserver.js --serverMode partialSemantic --useInferredProjectPerProjectRoot --disableAutomaticTypingAcquisition --cancellationPipeName /tmp/vscode-typescript1000/f88dd96645e31124b9bd/tscancellation-f0953ad2c2fdbe1887b5.tmp* --globalPlugins @vscode/copilot-typescript-server-plugin --pluginProbeLocations /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/extensions/copilot --locale ja --noGetErrOnBackgroundUpdate --canUseWatchEvents --validateDefaultNpmLocation --useNodeIpc
ec2-user    2931 63.5 15.5 1637736 303568 ?      Rl   01:12   0:03 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node --max-old-space-size=3072 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/extensions/node_modules/typescript/lib/tsserver.js --useInferredProjectPerProjectRoot --enableTelemetry --cancellationPipeName /tmp/vscode-typescript1000/f88dd96645e31124b9bd/tscancellation-7d630fb64bfde0af9e0c.tmp* --globalPlugins @vscode/copilot-typescript-server-plugin --pluginProbeLocations /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/extensions/copilot --locale ja --noGetErrOnBackgroundUpdate --canUseWatchEvents --validateDefaultNpmLocation --useNodeIpc
ec2-user    2951  7.6  5.0 1462448 98224 ?       Sl   01:12   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/extensions/node_modules/typescript/lib/typingsInstaller.js --globalTypingsCacheLocation /home/ec2-user/.cache/typescript/6.0 --enableTelemetry --typesMapLocation /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/extensions/node_modules/typescript/lib/typesMap.json --validateDefaultNpmLocation
ec2-user    2973  0.0  0.1 223608  2948 pts/0    R+   01:12   0:00 ps -auxww

特に、tsserver.jsを起動しているプロセスで高いCPU使用率が見られる。
tsserverはTypeScript/JavaScriptの言語サービスで、コードの解析や補完、診断などを担う(VS CodeのTypeScript公式ドキュメント)。
このことから、リモート側で行われた解析が負荷の一因だった可能性がある。

(注)Linuxのpsに表示される%CPUは、プロセスの起動から現在までに使ったCPU時間を経過時間で割った値であり(cputime/realtime)、その瞬間の使用率ではない(psのマニュアル)。したがって、この値だけで特定のプロセスを原因と安直に断定はできないことには注意する必要がある。また、CPU負荷が原因なのかメモリ不足によるスラッシングなのかもこの観察だけでは判断できない。

これをローカルで実行するようにしてみる。
ローカル側のVS Codeのユーザー設定settings.jsonに、次の設定を追加する。

settings.json
{
  ~~(略)~~

  "remote.extensionKind": {
    "vscode.typescript-language-features": ["ui"],
    "ms-vscode.vscode-typescript-next": ["ui"]
  }
}

"ui"を指定すると、対象の拡張機能をローカル側で実行する(Remote-SSHではUI拡張機能がローカル側で実行されるため、この値を指定する)。
"ms-vscode.vscode-typescript-next"はTypeScriptの先行版を使うための拡張機能なので、インストールしていなければこの項目は不要。

(注)拡張機能の実行場所を強制すると、動作に影響する場合がある。VS Codeの公式ドキュメントでも、通常はテスト目的に限るよう案内されている。常用する場合は、必要な機能が正常に動くか確認する。

設定後、同じファイルを開いてプロセスを確認すると、

[ec2-user@ip-xx-xx-xx-xx ~]$ ps -auxww
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

~~(略)~~

ec2-user   10465  2.6  1.1  46168 22560 ?        Sl   05:46   0:01 /home/ec2-user/.vscode-server/code-2a59476c9bfcb90b3ddc372c36762471b7dfad1c command-shell --cli-data-dir /home/ec2-user/.vscode-server/cli --parent-process-id 10447 --on-host=127.0.0.1 --on-port
ec2-user   10522  0.0  0.0 221388  1888 ?        S    05:46   0:00 sleep 180
ec2-user   10523  0.1  1.0  42512 20676 ?        Ssl  05:46   0:00 /home/ec2-user/.vscode-server/code-2a59476c9bfcb90b3ddc372c36762471b7dfad1c --cli-data-dir /home/ec2-user/.vscode-server/cli agent host
ec2-user   10530  0.0  0.1 223008  3388 ?        S    05:46   0:00 sh /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/bin/code-server --connection-token=remotessh --accept-server-license-terms --agent-host-bridge-port=40121 --agent-host-bridge-host=127.0.0.1 --start-server --enable-remote-auto-shutdown --socket-path=/tmp/code-c9d1b943-db24-4165-9cc9-04daaa2ac845
ec2-user   10534 11.7 10.7 1863460 209752 ?      Sl   05:46   0:06 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/server-main.js --connection-token=remotessh --accept-server-license-terms --agent-host-bridge-port=40121 --agent-host-bridge-host=127.0.0.1 --start-server --enable-remote-auto-shutdown --socket-path=/tmp/code-c9d1b943-db24-4165-9cc9-04daaa2ac845
root       10571  0.0  0.0      0     0 ?        I    05:46   0:00 [kworker/u8:3]
ec2-user   10584  0.0  0.1 223008  3452 ?        S    05:46   0:00 sh /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/bin/code-server --socket-path /tmp/code-0471564b-f4cc-4e71-99cc-4dbb7c26df67 --agent-host-path /tmp/code-66e505fd-dae6-420d-aa5d-e31e9e792eba --start-server --accept-server-license-terms --enable-remote-auto-shutdown --without-connection-token
ec2-user   10589  1.9  6.2 1790796 122716 ?      Sl   05:46   0:01 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/server-main.js --socket-path /tmp/code-0471564b-f4cc-4e71-99cc-4dbb7c26df67 --agent-host-path /tmp/code-66e505fd-dae6-420d-aa5d-e31e9e792eba --start-server --accept-server-license-terms --enable-remote-auto-shutdown --without-connection-token
ec2-user   10636  4.0  8.6 18600944 169388 ?     Sl   05:46   0:02 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/bootstrap-fork --type=agentHost --logsPath /home/ec2-user/.vscode-server/data/logs/20261009T054620 --user-data-dir /home/ec2-user/.vscode-server/data --telemetry-level all
ec2-user   10647  0.7  3.7 1565376 72828 ?       Sl   05:46   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/bootstrap-fork --type=ptyHost --logsPath /home/ec2-user/.vscode-server/data/logs/20261009T054618
ec2-user   10660  0.4  2.3 668304 46040 ?        Sl   05:46   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node_modules/@github/copilot-sdk-linux-x64/prebuilds/linux-x64/copilot-runtime --headless --no-auto-update --log-level info --stdio --no-auto-login
ec2-user   10756 36.2 22.8 19125952 447384 ?     Sl   05:46   0:08 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node --dns-result-order=ipv4first /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/bootstrap-fork --type=extensionHost --transformURIs --useHostProxy=false
ec2-user   10768  1.2  3.0 1676284 60352 ?       Sl   05:46   0:00 /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/node /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/bootstrap-fork --type=fileWatcher
ec2-user   10804  0.1  0.2 224252  5208 pts/1    Ss+  05:46   0:00 /bin/bash --init-file /home/ec2-user/.vscode-server/cli/servers/Stable-2a59476c9bfcb90b3ddc372c36762471b7dfad1c/server/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh
ec2-user   10872  0.0  0.1 223608  2976 pts/0    R+   05:47   0:00 ps -auxww

このときリモート側ではtsserver.js関連のプロセスが見られず、観察した範囲でCPU使用率も下がった。
ファイルを開いたときの動作も体感では軽くなった。

今回の環境では、CSS、HTML、JSON、Markdown、PHPの言語機能も確認できた。
これらについても、サーバー側とローカル側のどちらで動いているか必要に応じて確認すると良いと思われる。

これで大きなJSファイルなどを開いても落ちにくくなった(多分)!

自環境でデフォルトで入ることを確認した拡張機能一覧

言語・編集支援

AI・GitHub

Git・検索

  • git: ソース管理ビューや Git 操作を VS Code に統合。
  • git-base: Git 関連の共通機能を提供する内部用コンポーネント。
  • merge-conflict: マージコンフリクトの強調表示や解決コマンド。
  • references-view: 参照検索の結果をサイドバーに表示。
  • search-result: 検索結果タブの強調表示や言語機能。

実行・デバッグ

  • js-debug: Node.js や Chrome の JavaScript デバッグ。
  • js-debug-companion: JavaScript デバッガーのリモートデバッグ補助。
  • debug-auto-launch: Node.js のデバッグ自動アタッチを補助。
  • debug-server-ready: デバッグ中のサーバー起動を検知し、ブラウザーで開く機能。
  • vscode-js-profile-table: JavaScript のプロファイル結果を表形式で表示。
  • npm: npm スクリプトをタスクとして扱う機能。
  • grunt: Grunt タスクのサポート。
  • gulp: Gulp タスクのサポート。
  • jake: Jake タスクのサポート。
  • terminal-suggest: zsh/bash/fish のターミナル入力補完。

表示・接続など

  • media-preview: 画像・音声・動画の組み込みプレビュー。
  • mermaid-markdown-features: Markdown のプレビューやチャットなどで Mermaid 図を表示。
  • simple-browser: VS Code 内で Web ページを表示する簡易ブラウザー。
  • tunnel-forwarding: ローカルのポートを転送し、外部からアクセスできるようにする機能。

ただし、.vscode-serverはリモート側にインストールされるため、その分のストレージを使用することに変わりはない。
また、別のユーザー名でログインすると、.vscode-serverはそのユーザーのホームディレクトリにも置かれるため、ユーザーごとにストレージが必要になる。
さらに今回の出力からは、bootstrap-forkやserver-main.jsなどVS Code Server関連のプロセスが動いていることも確認できた。

その点では、SFTP拡張機能などを使ってローカルのファイルをリモートと同期する方法も選択肢になる。
Remote-SSHを使わない方法ならVS Code Serverやリモートの拡張機能ホストを起動せずに済む一方で、リモート側のファイル保存領域は必要であり、また自動同期の頻度によっては通信量や待ち時間も増える。
用途に応じて選ぶのがよさそう。
少なくとも、Remote-SSHがリモート側で何を動かすのかは理解して使いたいと思った。

おわりに

Remote-SSHの仕組みと、利用時に気をつけたいことをまとめた。
今回の観察ではJavaScript/TypeScriptの言語機能がリモート側で動作しており、tsserverを含む複数のプロセスで高いCPU使用率が見られた。
設定を変えて言語機能をローカル側で処理するようにしたところ、リモート側でtsserverのプロセスが見られなくなり、ps上のCPU使用率も下がった。
リモート側でどの処理がリソースを使っているか調べることは重要だと感じた。
今後Remote-SSHを使うときには、その仕組みについても意識したい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?