VSCode users connecting to an HPC login node cause performance issues, mainly through heavy file I/O (VSCode's file watcher crawls the filesystem aggressively)

The core problem: VSCode users connecting to an HPC login node cause performance issues, mainly through heavy file I/O (VSCode’s file watcher crawls the filesystem aggressively).

Recommended solutions, in order of popularity:

  1. Open OnDemand (OOD) – The most widely adopted solution. Multiple institutions (Iowa State, University of Vermont, University of Delaware, etc.) provide VSCode Server as an interactive app through OOD, which runs the session on a compute node with proper resource constraints.

  2. SSH Tunneling to a compute node – Start an interactive job, launch VSCode Server on the compute node bound to a port (e.g. 8080), then use SSH port-forwarding to access it from a local browser. More flexible but requires some admin setup.

  3. Registered SSH Tunnels / Code Tunnels – Iowa State and University of Vermont use code tunnels (via tmux + VSCode tunnel) so users can connect from their local VSCode with the Remote Development extension.

  4. Dedicated VSCode landing node – At least one institution set up a separate node specifically for VSCode connections, keeping load off the main login nodes.

  5. Restrict VSCode’s file watcher – As a mitigation (not a full fix), users should edit their config.json to limit which paths VSCode crawls, which significantly reduces filesystem I/O load.

Bottom line: The consensus is to keep VSCode off login nodes entirely and route it through compute nodes, with OOD being the most common and admin-friendly approach.

Here are the links and resources supporting the solutions:

  1. Purdue HPC step-by-step guide – Covers using VSCode locally and connecting to compute nodes (including interactive use like Jupyter/RStudio): https://rcac-bioinformatics.github.io/guide/vscode/#vscode-step-by-step-instructions

  2. Iowa State University guide – Three methods: OOD, registered tunnel, and SSH to a separate login node: https://research.it.iastate.edu/using-vs-code-cluster

  3. University of Delaware – vscode-shell-proxy utility (by Jeff Frey) – Eliminates issues with the VSCode Remote-SSH extension on HPC clusters. Available on GitHub, with full details on their wiki:

    • Search GitHub for vscode-shell-proxy by Jeff Frey / University of Delaware

    • Wiki page: “Appropriate use of RCI Clusters as a VSCode Backend” (UD’s RCI documentation)

  4. UoU Arbiter – A tool for managing resource usage on login nodes (not VSCode-specific, but relevant for enforcing limits): https://github.com/chpc-uofu/arbiter/tree/main

  5. Open OnDemand – The platform used by many institutions to provide browser-based VSCode access on HPC. Not a direct link from the document, but the official resource is: https://openondemand.org