LSF - bsub提交的任务关掉了,bjob查看job还在RUN?
Posted 王万林 Ben
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LSF - bsub提交的任务关掉了,bjob查看job还在RUN?相关的知识,希望对你有一定的参考价值。
LSF - bsub提交的任务关掉了,bjob查看job还在RUN?
前言
HPC环境下,使用打开cgroup的LSF集群,经常会出现这样的情况:bsub
提交了一个gnome-terminal
,用完之后将gnome-terminal
关掉了,这个job
还在运行。
通过bjobs -l <JOB ID>
查看到执行机
,然后登陆上去看,发现有dbus-luanch
与dbus-daemon
两个进程在运行。正因为这两个进程还在运行,导致LSF
判断job
还在运行。
一、原因
有些应用,像GUI应用
,在后台会留下子进程。这样的LSF job
会保持RUN状态
,就算是将该应用关掉。
原因是在打开了cgroups
的LSF
,它会等待每一个进程完成后,才判定job
为DONE
状态。
二、解决方法
解决这个问题,在执行机需要打开cgred
,通过适当的配置将残余的进程移到其它子组(sub-group)
,如此LSF
就不会认为它是job
的一部分,这样用户的任务结束job
就能正常显示Done
。
步骤1:增加组
配置一个永久组,我们叫它leftprocess
sudo vim /etc/cgconfig.conf
group leftprocess {
cpuacct {}
memory {}
freezer {}
cpuset {}
}
步骤2:配置cgred
修改配置文件,使cgred
将残余进程移到子组(dub-group)
。(在这里我假设残余进程是dbus-daemon
)
sudo vim /etc/cgrules.conf
*:dbus freezer,memory,cpuacct leftprocess/
步骤3:重启
重启cgroup与cgred以让配置生效。
sudo sysemctl restart cgconfig
sudo systemctl restart cgred
三、支持平台
总结
以上就是在打开cgroups的LSF集群中,处理残余进程的方法。
如有疑问,欢迎留言沟通。
参考资料
https://www.ibm.com/support/pages/how-move-some-child-processes-forked-applications-gui-out-lsf-control-when-cgroup-enabled-cluster
https://www.ibm.com/support/pages/node/632289
以上是关于LSF - bsub提交的任务关掉了,bjob查看job还在RUN?的主要内容,如果未能解决你的问题,请参考以下文章
LSF - bjobs频繁查询导致集群性能问题的debug分析