远程开发时CPU和内存爆满是远端服务器问题,因vscode-server及插件运行在远端;需禁用远端文件监听、符号搜索,限制语言服务器功能,精简远程扩展,并调整扩展加载策略。

远程开发时 CPU 和内存爆满,根本不是本地问题
VSCode 远程开发(Remote-SSH / Remote-Containers)实际把 vscode-server 和所有插件进程跑在远端机器上,本地只传 UI 指令。所以你看到的高 CPU、内存占用,99% 是远端服务器扛不住——尤其是默认启用的 search.followSymlinks、files.watcherInclude 或大型语言服务(如 pylsp、typescript-language-server)在海量文件中无限制扫描导致的。
禁用远端自动文件监听和符号搜索
远端文件系统(尤其 NFS、挂载卷、/proc /sys)极易触发 watcher 崩溃或 OOM。必须在远端工作区的 .vscode/settings.json 中显式压制:
{
"search.followSymlinks": false,
"files.useExperimentalFileWatcher": false,
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/node_modules/**": true,
"/proc/**": true,
"/sys/**": true,
"/dev/**": true
},
"editor.quickSuggestions": false,
"javascript.suggest.autoImports": false,
"typescript.suggest.autoImports": false
}
注意:这些设置必须写在远端项目根目录下的 .vscode/settings.json,而不是本地用户设置;否则不生效。
限制语言服务器启动参数和内存上限
比如 Python 的 pylsp 默认不限制内存,可在 .vscode/settings.json 加:
"python.defaultInterpreterPath": "/usr/bin/python3", "python.languageServer": "Pylsp", "python.pylsp.plugins.jedi_enabled": false, "python.pylsp.plugins.pydocstyle.enabled": false, "python.pylsp.plugins.flake8.enabled": false
对 TypeScript/JavaScript,禁用 tsserver 的完整项目检查:
"typescript.preferences.includePackageJsonAutoImports": "off", "typescript.preferences.enableAutoImportSuggestions": false, "typescript.preferences.useAliasesForRenames": false
关键点:pylsp 和 tsserver 都支持通过环境变量或 CLI 参数限内存(如 PYTHONPATH + --max-memory=512),但 VSCode 不直接暴露该入口,只能靠关插件、关功能来间接压降。
远程扩展必须精简,别装“全栈包”
远端 ~/.vscode-server/extensions/ 下每多一个扩展,就多一个 Node.js 进程。常见重灾区:
-
ms-python.python→ 改用轻量ms-python.pylsp(需手动配) -
esbenp.prettier-vscode→ 改用远端 CLI(prettier --write)+ 本地格式化快捷键绑定 -
oderwat.indent-rainbow、bradlc.vscode-tailwindcss→ 这类实时渲染型扩展在远端会持续吃 CPU
真正只需要保留的:语法高亮、基础调试器(ms-vscode.cpptools / ms-python.debugpy)、GitLens(仅需远端 Git CLI,不依赖后台服务)。
远端资源紧张时,连 ms-vscode.remote-server 自身的健康检查频率都可调:在远端 ~/.vscode-server/data/Machine/settings.json 加 "remote.extensionKind": { "ms-python.python": ["workspace"] },强制某些扩展只在 workspace 级加载,而非全局常驻。


















