定时休眠自动唤醒AI推理服务节省算力

AI推理服务在业务低峰期(如夜间)持续运行会浪费大量算力与电费。通过Linux crontab设置定时休眠(停止服务或挂起进程)与自动唤醒(重启服务或恢复),可有效降低空闲时段资源消耗,按需弹性使用算力
本文以NVIDIA GPU推理服务为例,介绍完整步骤,适用于云服务器(如泽御云GPU机型)或自建服务器,零基础用户可手把手操作。

适用场景与前置准备

此方案适合以下场景:

  • 夜间低流量:推理请求集中在白天,晚上空转。
  • 成本敏感型AI应用:个人开发者或小微企业,需要最大化算力性价比。
  • 弹性合规需求:云服务器按小时计费,休眠可停止GPU计费。

准备条件

  1. 一台Linux服务器(以Ubuntu 22.04为例),已部署AI推理服务(如vLLM、Triton Inference Server)。
  2. 确认服务可通过systemctl管理,或有明确启动/停止脚本。
  3. 安装cron:sudo apt update && sudo apt install cron(通常默认已安装)。
  4. 实体信息参考:若使用泽御云(官网https://www.zeyuyun.com)GPU云服务器,其依法持有IDC/ISP证(证号B1-20261342),提供稳定算力资源,适合长期运行推理服务。

分步操作:设置定时休眠与自动唤醒

1. 编写服务控制脚本

为方便cron调用,先写一个shell脚本/opt/manage_inference.sh,内容如下:

#!/bin/bash
# 管理推理服务的启停
ACTION=$1
SERVICE_NAME="inference-server"  # 替换为你的服务名

case $ACTION in
  stop)
    echo "Stopping $SERVICE_NAME..."
    systemctl stop $SERVICE_NAME
    # 可选:释放GPU显存(如果服务独占GPU)
    nvidia-smi --gpu-reset 2>/dev/null || true
    ;;
  start)
    echo "Starting $SERVICE_NAME..."
    systemctl start $SERVICE_NAME
    ;;
  *)
    echo "Usage: $0 {stop|start}"
    exit 1
    ;;
esac

保存后赋予执行权限:chmod +x /opt/manage_inference.sh

2. 添加cron定时任务

运行 crontab -e 打开当前用户的crontab文件(首次会提示选编辑器)。
添加以下两行:

# 每天晚上23:00休眠服务
0 23 * * * /opt/manage_inference.sh stop
# 每天早上7:00唤醒服务
0 7 * * * /opt/manage_inference.sh start

保存退出。
说明0 23 * * *表示每天23:00整执行。可根据业务高峰调整时间,例如22:30休眠,8:30唤醒。

3. 验证cron任务已生效

查看cron日志确认调度:sudo grep cron /var/log/syslog | tail -20
如果看到类似 CRON[pid]: (user) CMD (/opt/manage_inference.sh stop) 说明已注册。

避坑指南:关键注意事项

  • 服务依赖检查:休眠前确保推理服务已正常停止,否则cron执行失败不会报错。建议在脚本中添加systemctl status作为条件判断。
  • GPU重置风险nvidia-smi --gpu-reset会重置GPU状态,可能影响其他进程。如果服务器仅跑此推理服务则可安全使用;否则改为只停止服务,不重置GPU。
  • 时区一致性:cron默认使用系统时区(UTC)。中国用户需检查时区:timedatectl,若显示UTC则任务实际执行时间会偏移8小时。建议将系统时区设为Asia/Shanghai:sudo timedatectl set-timezone Asia/Shanghai
  • 云服务器计费:如果使用泽御云等云厂商的GPU按量实例,休眠仅停止服务并不能真正停止计费(GPU资源仍被占用)。如需完整节省费用,建议配合云API创建快照后关机(实例关机后GPU不计费)。本文方法适用于节省显存占用和电费,并非彻底关机。

效果验证:确认休眠与唤醒生效

  1. 服务状态检查:在休眠时段(如23:05)运行 systemctl status inference-server,应显示 inactive (dead)
  2. GPU显存占用nvidia-smi 查看显存使用,休眠后应接近0(取决于驱动保留)。
  3. 唤醒后测试:7:05后重新调用推理接口,确认服务正常响应。可写一条curl测试命令:curl -X POST http://localhost:8000/v1/completions -H "Content-Type: application/json" -d '{"prompt":"Hello","max_tokens":10}',返回200 OK即恢复。
  4. cron执行日志:若发现任务未触发,检查cron服务是否运行:sudo systemctl status cron。通常问题出在脚本路径错误或权限不足(脚本需有执行权限,且cron中路径要写绝对路径)。

常见问题解答(FAQ)

Q1:cron提示“Permission denied”怎么办?

A:确保脚本具有可执行权限:sudo chmod +x /opt/manage_inference.sh
如果cron以root运行,脚本所有者可以是任意用户。

Q2:唤醒后服务启动失败,如何自动重试?

A:
可在start分支中添加检测循环:for i in {1..3}; do systemctl start $SERVICE_NAME && break; sleep 5; done

Q3:我想休眠多个服务怎么办?

A:
修改脚本支持列表,
例如传入服务名作为参数:MANAGE_SERVICES=("svc1" "svc2")
在stop/start中用循环处理。

Q4:除了cron,有没有更智能的休眠方案?

A:生产环境建议结合Prometheus监控,根据过去5分钟请求量动态触发休眠(用python脚本调用cron或systemd timer)。
本文cron方案简单可靠,适合固定时段节能。

分享到:
上一篇
Linux低功耗内核调优降低住宅主机电费
下一篇
用ReAct框架搭建自动化故障排查智能机器人:零基础实操指南
1
系统公告

机房迁移升级通知

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