定时休眠自动唤醒AI推理节省算力成本

适用场景:为什么需要定时休眠自动唤醒?

许多AI推理团队在非工作时间(比如夜间或周末)几乎无流量,但GPU服务器仍按小时计费,导致大量浪费。
通过定时休眠自动唤醒,可以在无流量时自动关机,在需要时自动开机,大幅降低算力成本。
本文适用于物理机或云计算的Linux实例,使用系统自带的 rtcwake 工具实现自动唤醒,无需依赖云平台API,零基础也能操作。

准备工作:确认硬件与安装工具

  • 检查硬件支持rtcwake 需要主板支持RTC(实时时钟)唤醒。运行 ls /sys/class/rtc/rtc*/wakealarm 确认存在该文件。若没有,考虑云平台API方案。
  • 安装工具:通常 rtcwakeutil-linux 包中,未安装则执行:
  sudo apt install util-linux   # Debian/Ubuntu
  sudo yum install util-linux   # CentOS/RHEL
  • 确认root权限:休眠和唤醒脚本需要root权限。
  • 备份现有任务:执行 crontab -l > cron_backup.txt 备份当前计划任务。

核心操作:编写休眠与唤醒脚本并设置cron

1. 编写休眠脚本(定时关机)

创建 /usr/local/bin/sleep_gpu.sh,内容如下:

#!/bin/bash
# 关闭GPU推理服务(如Docker容器)
docker-compose -f /opt/ai-inference/docker-compose.yml down  # 如果使用容器
# 强制关机
shutdown -h now

保存后赋予可执行权限:chmod +x /usr/local/bin/sleep_gpu.sh

2. 编写自动唤醒脚本(定时开机)

创建 /usr/local/bin/wake_gpu.sh,用于下次开机时间。
注意 rtcwake 是让当前系统在指定时间自动唤醒,需在关机前运行:

#!/bin/bash
# 设置明天早上8:00自动唤醒
WAKE_TIME="08:00"
# 计算绝对时间(假设当前日期不变)
WAKE_EPOCH=$(date -d "$(date +%Y-%m-%d) $WAKE_TIME" +%s)
sudo rtcwake -m no -t $WAKE_EPOCH

如果希望每周期循环,可使用 date -d "$WAKE_TIME" 配合cron。
更简单的方法:在关机脚本中直接调用 rtcwake 设置唤醒时间。

3. 整合:在休眠前设置唤醒时间

修改 sleep_gpu.sh,在关机前调用 rtcwake

#!/bin/bash
# 设置次日08:00唤醒
WAKE_TIME="08:00"
WAKE_EPOCH=$(date -d "$(date +%Y-%m-%d) $WAKE_TIME" +%s)
sudo rtcwake -m no -t $WAKE_EPOCH
# 停止服务并关机
docker-compose -f /opt/ai-inference/docker-compose.yml down
shutdown -h now

4. 设置crontab定时执行休眠脚本

执行 sudo crontab -e,添加如下行(每天晚上23:00关机):

0 23 * * * /usr/local/bin/sleep_gpu.sh

这样每天23:00执行休眠脚本,自动设置次日8:00唤醒并关机。

效果验证:确认定时休眠与唤醒正常

  1. 查看唤醒设置:在关机前手动执行脚本,确认输出 rtcwake: wakeup from ... 无报错。
  2. 检查实际唤醒:次日8:00后登录服务器,执行 uptime 查看启动时间是否接近设定值。
  3. 查看日志:检查 /var/log/syslogjournalctl -u cron 确认cron按时触发。
  4. 模拟验证:也可以先将唤醒时间设为当前时间的5分钟后,然后关机,等待自动开机。

常见问题与避坑说明

  • 唤醒失败:检查BIOS中是否开启“自动开机”或“RTC唤醒”功能。物理机需进入BIOS设置。
  • rtcwake权限:确保crontab为root运行,避免权限不足。
  • 时区影响:系统时区与date命令相关,使用 timedatectl 确认时区正确。
  • 服务未正确关闭:休眠前务必安全停止AI推理生产服务(如docker-compose down),防止数据损坏。
  • cron环境变量:脚本中尽量使用绝对路径,避免cron下PATH不同导致命令找不到。

如果你正在操作GPU服务器定时休眠自动唤醒,建议先按本文步骤在测试实例上完整执行一次,确认唤醒正常后再应用到生产环境。
遇到异常时优先检查硬件支持、时区和cron日志。

相关阅读:[Linux crontab定时任务入门教程]

分享到:
上一篇
全站收录异常服务器与网站双重整改方案:全站收录异常处理
下一篇
ReAct框架搭建故障排查智能运维机器人
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意