解决方案:配置SkyPilot的智能终止策略
背景:据统计,30%的云计算支出来自闲置资源,尤其是被遗忘的开发测试集群。
- 自动回收方案
- 基本设置:在YAML中添加
resources.autostop_mins: 30
表示空闲30分钟后自动关机 - 任务级控制:对于训练任务使用
run: until [[ -f /tmp/stop ]]; do python train.py; done
实现检查点感知 - 全局策略:在
~/.sky/config.yaml
设置默认autostop策略
- 基本设置:在YAML中添加
- 监控手段
- 通过
sky cost-report
查看各集群累计费用 - 使用
sky.autostop.status
查询自动终止倒计时 - 集成到Slack:
sky alert --slack-webhook
接收费用告警
- 通过
- 特殊情况处理
- 对于必须长期运行的集群,显式设置
autostop: false
- 使用
sky.down.on-failure: false
让失败任务保留现场供调试 - 通过
sky bench
估算任务耗时,设置合理autostop时间
- 对于必须长期运行的集群,显式设置
效果:用户案例显示该方案可减少40%的云计算浪费,特别适合间歇性使用的开发团队。
本答案来源于文章《SkyPilot:在任何云端高效运行AI与批处理任务的开源框架》