开发机 WebIDE 或本地 IDE(如VSCode)远程连接开发机最佳实践:避免扫描共享存储目录
适用场景
当开发机中挂载了共享存储(PFS、CFS、BOS、RapidFS等)目录时,建议不要直接用 WebIDE 打开这些目录或其上级目录。
最佳实践:IDE中只打开代码目录,共享存储目录通过命令行或业务程序访问。
为什么需要这样配置
WebIDE 会对当前工作区做文件监听和 Git 仓库探测。如果工作区包含共享存储目录,IDE 可能会递归扫描这些目录,导致大量文件元数据并发访问。
共享存储目录的文件元数据访问需要经过网络请求,递归扫描会放大访问量,可能导致 WebIDE 文件树、Git 面板、终端操作或开发机访问体验变慢。
不建议被 IDE 扫描的目录类型
以下类型属于远端 / 网络挂载目录,不建议放入 IDE 工作区扫描范围:
| 类型 | 说明 |
|---|---|
| PFS | 并行文件系统 |
| CFS | 云文件存储 / NAS 类文件系统 |
| BOS | 对象存储通过文件系统方式挂载后的目录 |
| RapidFS | 远端 / 网络挂载文件系统 |
CDS 云磁盘、CFS持久盘、本地系统盘、本地数据盘等本地块存储目录通常不受此问题影响。
Notebook 是否也需要注意
Notebook 通常不会像 IDE Git 扩展一样主动递归扫描整个工作区,也不会默认持续探测 .git 仓库。因此,单纯打开 Notebook 一般不等同于 IDE 的持续扫描行为。
但在以下情况,Notebook 仍可能触发远端存储的大量文件访问:
- Notebook 的启动目录设置在
/root、/mnt、/data等较大的父目录下,文件浏览器会展示包含远端存储的目录树。 - 用户在 Notebook 中执行了递归遍历、批量读取、
glob、os.walk、find、du等操作。 - 安装的 JupyterLab 扩展、文件搜索插件或自动索引功能访问了远端存储目录。
- Notebook 中的训练、数据处理代码把远端存储目录作为数据集根目录进行全量扫描。
建议:Notebook 的启动目录也尽量设置为具体项目目录或 Notebook 目录,不要设置为包含共享存储挂载点的上级目录。需要访问共享存储时,在代码中按需读取具体路径,避免全目录递归扫描。
推荐配置方式
1.IDE 工作区只打开没有【存储挂载】的目录
调整工作区,只显示没有【存储挂载】的目录,或者直接设置为一个空目录地址(例如/opt)
设置方式: 在 IDE 中:
- 点击
File > Close Folder,关闭当前工作区。 - 点击
File > Open Folder,只选择代码目录,例如:
1/root/workspace/project/your-project
不要直接打开包含远端存储挂载点的父目录,例如:
1/root
2/mnt
3/data
2.配置 WebIDE 用户设置
如 WebIDE 只是卡顿,依然能运行,则以本章节方式调整 WebIDE 用户设置,如已经无法运行,请参考后面的SSH/Notebook方式
2.1.打开配置文件
通过WebIDE打开配置页面(本地 IDE 设置方法类似)

右上角红圈中的按钮,就可以把配置文件打开

2.2.打开配置文件并修改配置
在找到的该文件中添加或合并以下配置,通常一旦修改文件,配置立即生效。请根据实际挂载路径调整 /mnt/pfs、/mnt/cfs 等路径:
1{
2 ... # 这里是其他内容,下面是要添加或合并的内容
3 "files.watcherExclude": {
4 "/mnt/pfs/**": true,
5 "/mnt/cfs/**": true,
6 "/mnt/bos/**": true,
7 "/mnt/rapidfs/**": true,
8 "/mnt/nfs/**": true
9 },
10 "files.exclude": {
11 "/mnt/pfs": true,
12 "/mnt/cfs": true,
13 "/mnt/bos": true,
14 "/mnt/rapidfs": true,
15 "/mnt/nfs": true
16 },
17 "git.autoRepositoryDetection": "openEditors",
18 "git.ignoredRepositories": [
19 "/mnt/pfs",
20 "/mnt/cfs",
21 "/mnt/bos",
22 "/mnt/rapidfs",
23 "/mnt/nfs"
24 ]
25}
配置说明:
files.watcherExclude:避免 WebIDE 持续监听共享存储目录。files.exclude:在 WebIDE 文件树中隐藏远端存储目录,减少误操作。git.autoRepositoryDetection:只对左侧目录内打开的文件进行Git扫描git.ignoredRepositories:显式忽略共享存储目录下的 Git 仓库扫描
如何确认配置是否生效
- WebIDE 文件树中不再展示共享存储目录。
- Git 面板不再长时间处于扫描或刷新状态。
- 终端命令、文件浏览、代码编辑响应恢复正常。
如果远端存储目录仍然出现在文件树中,请确认配置中的路径是否和实际挂载路径一致。可以通过以下命令查看挂载路径:
1mount | grep -Ei 'pfs|cfs|bos|rapidfs|nfs'
2df -h | grep -Ei 'pfs|cfs|bos|rapidfs|nfs'
3.SSH/Notebook 配置 WebIDE 用户设置
如果WebIDE已经无法运行,请使用【关闭WebIDE后用SSH连接】或【从WebIDE切换到Notebook】方式进行设置
通过上面的方式,对WebIDE用户设置文件 /root/.local/share/code-server/User/settings.json 中添加或合并以下配置
修改内容和WebIDE直接修改一样,请根据实际挂载路径调整 /mnt/pfs、/mnt/cfs 等路径:
1{
2 ... # 这里是其他内容,下面是要添加或合并的内容
3 "files.watcherExclude": {
4 "/mnt/pfs/**": true,
5 "/mnt/cfs/**": true,
6 "/mnt/bos/**": true,
7 "/mnt/rapidfs/**": true,
8 "/mnt/nfs/**": true
9 },
10 "files.exclude": {
11 "/mnt/pfs": true,
12 "/mnt/cfs": true,
13 "/mnt/bos": true,
14 "/mnt/rapidfs": true,
15 "/mnt/nfs": true
16 },
17 "git.autoRepositoryDetection": "openEditors",
18 "git.ignoredRepositories": [
19 "/mnt/pfs",
20 "/mnt/cfs",
21 "/mnt/bos",
22 "/mnt/rapidfs",
23 "/mnt/nfs"
24 ]
25}
配置说明:
files.watcherExclude:避免 WebIDE 持续监听共享存储目录。files.exclude:在 WebIDE 文件树中隐藏共享存储目录,减少误操作。git.autoRepositoryDetection:只对左侧目录内打开的文件进行Git扫描git.ignoredRepositories:显式忽略共享存储目录下的 Git 仓库扫描
评价此篇文章
