「我在睡觉,GPU 在烧钱。」——这是 GPU 用户吐槽最多的场景。训练脚本半夜跑完,实例却计费到第二天早上;周末提交的实验,周一才发现空跑了两天。
为什么总是忘关机
这不完全是用户粗心,传统云平台的设计也有责任:
- 训练脚本结束后,SSH 连接还活着,实例继续计费;
- 关了本地终端 ≠ 关了云端实例,很多人分不清;
- 多人共用的实例,没人敢确认能不能关;
- 半夜跑完的任务,总要等第二天才被发现。
靠自觉是解决不了这个问题的——人总会忘,尤其是一个月跑几十上百个任务的时候。
RunWhere 的做法:进程退出 = 任务结束 = 立即释放
自动停机的逻辑非常直接:平台监听任务主进程,进程退出信号一到,就执行完整的收尾流程——保存日志、销毁容器、释放 GPU、计费归零。全程不需要你做任何操作。
两个计费细节同样重要:
- 计费精确到秒:不存在「不足一小时按一小时算」的凑整;
- 排队等待不计费:任务在
pending状态排队时不产生 GPU 费用,只有真正占用节点才计费。
自动停机是 RunWhere 从第一天起的默认行为,不需要配置,也没有开关——因为我们认为「跑完就停」本来就该是算力平台的默认行为,而不是需要用户自己搭建的高级功能。
它的另一面:省心比省钱更重要
自动停机省下的账单很直观,但很多用户反馈更大的价值是心理负担消失了:
- 睡前提交任务不用定闹钟起来关机;
- 交互式调试时走开一会儿也不用心疼;
- 月底对账时,每一笔费用都对应真实的计算时间。
如果你还在用「人肉关机」的方式管 GPU,可以试试把下一个任务提交到 RunWhere:跑完去账务页看一眼账单,对比一下「任务时长」和「计费时长」——它们应该完全相等。