AWS EC2实例SSH运行脚本时连接崩溃问题咨询
问题解决建议
核心结论
升级到更大内存的实例类型大概率能解决问题,无需直接停止使用VS Code远程连接,但需要对VS Code的远程配置做一些优化。
问题根源分析
你的EC2实例是t2.micro,仅配备1GB内存。运行深度学习相关的detect.py脚本(加载1.45GB的权重文件)时会占用大量内存,再加上VS Code Server本身的内存消耗,很容易触发内存不足(OOM)。当系统内存耗尽时,Linux内核的OOM Killer会主动终止占用内存较多的进程(包括SSH服务或VS Code Server进程),直接导致SSH连接崩溃。重启实例只是临时释放了内存,再次运行脚本后内存会被迅速耗尽,问题重复出现。
具体解决方案
1. 升级实例类型
优先选择内存更大的实例类型,推荐:
t2.small(2GB内存):内存翻倍,足以支撑VS Code Server+深度学习脚本的基础需求,成本增加不多- 如果后续需要运行更复杂的模型,可以考虑
t3.medium(4GB内存)或带GPU的实例(如g4dn.xlarge)
升级步骤:停止实例 → 修改实例类型 → 重启实例即可,无需重新创建实例或迁移数据。
2. 优化VS Code远程配置(无需停用)
通过调整VS Code配置减少内存占用,降低崩溃概率:
- 卸载远程实例上不需要的VS Code扩展,仅保留Python、Remote-SSH等核心扩展
- 在VS Code的远程设置中添加规则,排除大文件夹的监听:
"files.watcherExclude": { "**/weights/**": true } - 避免在VS Code中打开过多标签页,关闭实时预览、自动格式化等非必要功能
3. 额外排查验证
- 运行脚本前,用
free -m查看当前内存使用情况;运行脚本时用htop实时监控内存变化,确认是否出现内存耗尽 - 查看系统日志
/var/log/syslog或执行dmesg | grep -i oom,如果出现"Out of memory"相关日志,即可确认是OOM导致的SSH崩溃
内容的提问来源于stack exchange,提问作者sun_riser
相关产品推荐
相关产品推荐

