You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sun Grid Engine集群:如何定时暂停运行作业并重启?

集群作业暂停与重启的替代方法

1. 用 qalter 结合定时任务批量设置自动暂停/恢复

可以通过qalter给作业指定自动暂停的时间窗口,配合系统定时任务提前配置,让作业在维护时段自动暂停,时间到后自动恢复运行,无需手动逐个操作:

# 示例:维护时间为2024-05-20 18:00至2024-05-21 02:00,批量设置所有运行/待执行作业
qstat -u $USER | grep -E 'R|Q' | awk '{print $1}' | xargs qalter -acct_hard -suspend_start "2024-05-20T18:00:00" -suspend_end "2024-05-21T02:00:00"

2. 利用集群调度器的维护模式

多数集群调度器(如PBS Pro、Torque)支持内置维护模式,调度器会自动处理作业的暂停与恢复:

  • 开启维护模式(需管理员权限或自身有操作权限):
    qmgr -c "set server scheduling = off"
    qmgr -c "set server suspend_jobs = true"
    
  • 维护完成后恢复调度:
    qmgr -c "set server scheduling = on"
    qmgr -c "set server suspend_jobs = false"
    

这种方法适合批量处理所有作业,无需针对单个作业操作,可联系集群管理员协助配置。

3. 编写批量脚本结合 qsig 发送信号

用qsig给运行中作业发送STOP信号暂停,维护后发送CONT信号恢复,再通过crontab定时执行脚本:

  • 暂停脚本(suspend_jobs.sh):
    #!/bin/bash
    qstat -u $USER | grep 'R' | awk '{print $1}' | xargs qsig -s STOP
    
  • 恢复脚本(resume_jobs.sh):
    #!/bin/bash
    qstat -u $USER | grep 'S' | awk '{print $1}' | xargs qsig -s CONT
    
  • 配置crontab定时执行:
    # 维护开始前1分钟执行暂停
    59 17 20 5 * /path/to/suspend_jobs.sh
    # 维护结束后立即执行恢复
    0 2 21 5 * /path/to/resume_jobs.sh
    

注意给脚本添加执行权限,且确保qsig命令对目标作业有操作权限。

补充提示

  • qhold/qrls更适合单个或少量作业,批量处理时上述方法效率更高;
  • 操作前建议先用1-2个测试作业验证命令效果,避免影响所有任务;
  • 不同调度器版本参数可能有差异,可通过man qalter、man qsig查看本地文档确认。

内容的提问来源于stack exchange,提问作者florence-y

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 15:39:19