VSCode 运行代码时因磁盘 IO 等待导致的终端假死排查

梦辰姑娘_1123

梦辰姑娘_1123

2026-06-26

381人浏览

原创

终端卡住但top显示%wa很高说明CPU大量时间等待磁盘I/O,本质是底层IO瓶颈而非终端故障;此时VS Code光标不动、命令无响应,%wa常超30%,需用iotop -o定位D状态的高IO进程并调控其优先级或终止源头。

vscode 运行代码时因磁盘 io 等待导致的终端假死排查

终端卡住但top显示%wa很高

这说明CPU大量时间在等磁盘,不是终端本身坏了,而是底层IO被拖垮。此时VS Code终端可能光标不动、命令无响应、甚至右键菜单都弹不出来——但top里%wa值往往超过30%,甚至飙到50%以上。

别急着重启VS Code或杀进程,先确认是不是IO瓶颈:

  • 运行top,盯住%wa列;%wa > 30%基本可判定是IO问题
  • 立刻开新终端(比如系统原生Terminal),执行iotop -o,看哪些进程在疯狂读写磁盘
  • 若发现大量python、node或java进程状态为D(uninterruptible sleep),基本锁定是它们把磁盘队列堵死了

iotop看到test2用户占满磁盘读取怎么办

典型现象是iotop显示某用户(比如test2)持续以500MB/s+速率读取/mnt/data之类路径,同时load average冲到40+,但CPU idle仍高达90%以上——这是典型的“CPU空闲,磁盘忙死”。

这时候VS Code终端卡住,不是它的问题,而是整个系统I/O调度器已饱和:

  • D状态进程无法用kill -9终止,得先停掉源头:比如pkill -u test2(谨慎执行,确认是否可中断任务)
  • 检查该用户最近启动的批量任务,比如Python数据加载脚本是否没加限速、是否误将node_modules目录纳入watch范围
  • 临时缓解:用ionice -c 3 -p 降低其IO优先级,避免完全饿死其他进程

VS Code终端里command not found但系统终端能跑

这不是磁盘IO直接导致的,但常在IO高压后连带出现——因为VS Code终端默认以非登录shell启动,$PATH不全,而IO卡顿会让shell初始化更慢,加剧环境变量加载失败。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载

验证和修复很简单:

  • 在VS Code终端里执行echo $PATH,对比系统终端输出,大概率缺~/.local/bin或nvm路径
  • 检查terminal.integrated.profiles设置,确保对应shell的args含-l(表示login shell)
  • 临时补救:export PATH="$HOME/.local/bin:$PATH";长期方案是在~/.zshrc开头加[[ -n $ZSH_EVAL_CONTEXT ]] && return防重复加载,再确保VS Code读取它

卡死后打开DevTools只看到Extension host terminated unexpectedly

这其实是IO瓶颈的次生灾害:当磁盘长时间无响应,VS Code扩展主机(Extension Host)启动时加载插件资源(比如GitLens缓存、ESLint规则文件)超时,直接崩溃。它不是插件本身有bug,而是根本读不到磁盘上的文件。

别一上来就二分禁用插件:

  • 先看Output面板 → Extension Host日志,找最后一行Activating extension后面跟着的插件ID,再结合iotop确认该插件是否正试图读大文件(如GitLens扫描10k+文件仓库)
  • 如果插件ID是gitlens.gitlens或ms-python.python,优先检查它配置里是否启用了gitlens.advanced.caching.enabled或python.defaultInterpreterPath指向网络挂载路径
  • 真正要动的是IO层:限制相关进程的io.weight(cgroup v2)、或把工作目录移到SSD而非NFS/mounted HDD

磁盘IO假死最麻烦的点在于:现象分散(终端卡、SSH慢、VS Code无响应),但根因单一。排查时容易陷进某个具体工具的日志里打转,而忽略%wa和iotop -o这两个最直接的信号。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1535

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

3312

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

2109

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1767

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2627

12

vscode中文设置方法
vscode中文设置方法

方法一:在设置页面中,搜索“locale”,并选择“zh-cn”。方法二:按“Ctrl Shift P”快捷键,输入“Configure Display Language”,将语言修改为“zh-cn”。如果上述方法无效,可考虑安装中文插件。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1858

14

vscode用途介绍
vscode用途介绍

Visual Studio Code(VSCode)是一款由 Microsoft 开发的多功能文本编辑器,适用于各种编程语言。作为一款开源软件,VSCode 拥有代码高亮、自动补全、调试、Git 集成等强大功能,成为程序员不可或缺的工具。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1282

10

vscode和visualstudio的区别
vscode和visualstudio的区别

Visual Studio是一款功能强大的集成开发环境(IDE),适用于专业开发人员进行复杂项目的构建。而VSCode则是一款轻量级的代码编辑器,更适合各种规模的项目开发。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1156

8

vscode设置中文界面不生效解决方法
vscode设置中文界面不生效解决方法

vscode设置中文界面不生效解决方法:安装中文语言包、通过命令面板设置语言、检查 locale.json 设置、重新安装中文语言包、检查 VSCode 版本和更新、排除插件冲突、检查系统语言设置、查看 VSCode 日志和错误消息、重置 VSCode 设置、查看官方文档和社区支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

554

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程