Colab Notebook频繁断开连接及VM自动关机问题求助
解决Notebook长时间实验断开连接与VM自动关机问题
这种长时间实验被中途打断的情况我太熟悉了!给你几个实用的方案,帮你搞定SSH断开、VM闲置关机的问题,让12小时的实验能顺利跑完:
1. 防止SSH连接频繁断开
SSH每隔十几二十分钟就断,核心是要保持连接的心跳:
- 临时生效:连接服务器时直接加保活参数,命令是:
解释下:ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 your_username@your_server_ipServerAliveInterval=60让SSH每60秒给服务器发一次心跳包,ServerAliveCountMax=3表示连续3次没收到回应才断开,基本能避免主动断连。 - 永久生效:修改本地SSH配置文件
~/.ssh/config,添加以下内容:
保存后,所有SSH连接都会自动启用保活机制,不用每次都输参数。Host * ServerAliveInterval 60 ServerAliveCountMax 3
2. 避免VM因闲置自动关机
VM判定闲置的逻辑一般是看有没有用户活动或系统负载,我们可以从这两方面入手:
- 用持久化会话工具后台跑实验:
screen或tmux是这类场景的神器,它们能创建独立于SSH连接的会话,即使你断开SSH,实验还在后台跑:- 连接服务器后输入
screen创建新会话; - 在会话里启动你的实验代码;
- 按
Ctrl+A再按D,就能脱离这个会话(会话还在后台运行); - 下次重连服务器后,输入
screen -r就能回到之前的会话,查看实验进度。
tmux操作类似:tmux new -s experiment_session创建命名会话,Ctrl+B+D脱离,tmux attach -t experiment_session恢复。
- 连接服务器后输入
- 模拟系统活动:如果VM是检测用户输入或磁盘活动,你可以定期触发小任务:
- 用
watch命令每5分钟生成一次磁盘活动:watch -n 300 touch /tmp/keep_vm_alive - 如果是图形界面的VM,安装
xdotool后每隔几分钟模拟按一次shift键:while true; do xdotool key shift; sleep 300; done &
- 用
3. 代码层面做断点续跑保障
就算VM意外关机,也不用从头跑实验,让代码支持断点续跑:
- 定期保存实验检查点:在代码里加入逻辑,每完成一个实验步骤或每隔一段时间,就把当前的实验进度、模型参数、已生成的结果保存到文件里。下次启动代码时,先检查是否存在未完成的检查点,直接从断点处继续执行。
- 用后台脚本运行:把实验代码写成脚本,用
nohup让它脱离SSH会话后台运行,同时保存日志:
这样即使SSH断开,脚本依然在跑,实验日志会存在nohup python your_experiment_script.py > experiment_run.log 2>&1 &experiment_run.log里,之后可以用tail -f experiment_run.log实时查看进度。
内容的提问来源于stack exchange,提问作者Halil Bilgin
相关产品推荐
相关产品推荐

