Skip to main content

控制作业

常用控制命令

命令 功能
bjobs 查看自己未结束的作业
bjobs -l JOBID 查看某个未结束作业的详情
bhist 查看自己已结束的历史作业
bhist -l JOBID 查看某个已结束历史作业的详情
bpeek JOBID 查看正在运行某个作业的stdout/stderr
bkill JOBID 终止某个作业
btop JOBID 设置作业最先运行
bbot JOBID 设置作业最后运行

作业状态

bjobs命令的作业状态可能值包括:

状态 描述
PEND 作业正在等待中。也就是说,作业尚未开始。
PROV 作业已被派发到一个正在唤醒的节能状态主机。在作业可以发送到
sbatchd之前,它处于PROV状态。
PSUSP 作业在等待期间被挂起,可能是作业所有者或LSF管理员操作的。
RUN 作业当前正在运行。
USUSP 作业在运行期间被挂起,可能是作业所有者或LSF管理员操作的。
SSUSP 作业被LSF挂起。
DONE 作业以状态0终止。
EXIT 作业以非零状态终止。
UNKWN mbatchd已与运行作业的主机上的sbatchd失去联系。
WAIT 对于提交到块作业队列的作业,块作业中的成员正在等待运行。
ZOMBI 一般是两种情况之一①当sbatchd在执行主机上不可达时如果非可重新运行的作业bkill杀死,
并且作业显示为UNKWN。 ②运行可重新运行作业的主机不可用,并且LSF
已将作业重新排队,分配了新的作业ID,就像提交了新作业一样。 ③在执
行主机可用之后,LSF尝试杀死ZOMBI作业。ZOMBI作业成功终止后,作业
状态将更改为EXIT。 使用MultiCluster时,当在远程执行群集上运行的作
业变为ZOMBI作业,执行群集将像本地ZOMBI作业一样于UNKWN状态,一般来
说就是计算节点坏了可以直接杀掉理该作业。①因为计算节点负载过高此外
能及时获取它还会通知提交群集作业状态导致状态未知,这种情况一般只需要等待即可,待
负载下降获取状态后就正常了。②因为计算节点出现故障且长时间未恢
复,调度系统无法获取作业状处于ZOMBI状态,此时如果登录不到相应的计算节点,
可以直接杀掉并且提交群集将重新排队作业。

作业等待

bwait -w "wait_condition" [-t timeout]

暂停并等待作业条件满足,不满足一直暂停等待,满足则执行完毕返回。

典型用法:在脚本中不要循环使用bjobs判断作业状态,而用bwait等待作业运行完成,这样更优雅且能显著降低对集群的压力。

  • -w wait_condition:要满足的等待条件,此表达式与上述bsub -w选项的格式相同。
  • -t timeout:等待条件的超时,范围为1-525600分钟,默认为一年。