LSF实践专题(34):判断LSF作业申请CPU和内存的合理性

在LSF10.1.0.13中,增加了CPU和MEMORY的EFFICIENCY报告功能,在今年新推出的LSF10.1.0.14中,又进一步对这个功能进行了优化。

那么这个功能是做什么用的呢?

我们在LSF中提交作业的时候,可以通过bsub的-n参数向LSF申请所需的CPU(或者slots)数量,以及通过参数-R “rusage[mem=xxx]” 向LSF申请所需的内存大小。

LSF在调度有这种申请的作业的时候,会在执行机上为这个作业分配对应数量的CPU(或者slots)和内存,一旦分配给了这个作业,LSF就会把这些资源和作业进行绑定,在这个作业结束前,不会分配给其他作业。但是有的时候,作业提交者申请的资源可能不一定准确,如果申请多了,作业用不了这么多,其他作业又不能使用,就会造成浪费,如果申请少了,则会导致作业运行速度慢,或者运行失败。

LSF这个新的CPU和MEMORY EFFICIENCY功能,就是对作业提交时申请的CPU和内存大小和作业运行时实际使用的CPU和内存大小进行比较,让用户能够观察到他们是否相差过多,从而在提交相同或类似作业的时候,方便参考,调整bsub的参数来进行更合理的CPU和内存资源请求。

01

这个功能在LSF10.1.0.13以及之后的版本中默认是开启的,如果不做特殊配置,LSF会对每个开始运行的作业的内存使用效率进行实时计算,并且以每60秒一次的间隔进行CPU使用效率的计算,也可以通过设置lsb.params中的参数CPU_PEAK_SAMPLE_DURATION进行设置来调整这个时间间隔,参数的值表示间隔的秒数。

图片

02

假设我们提交一个作业<731>,在提交时申请使用2个CPU,1000MB内存,而实际作业会消耗75%的CPU和500MB内存。通过 bsub -n2 -R “ruage[mem=1000]” 来进行提交:

图片

03

在作业开始运行一段时间后,我们就可以通过bjobs -l来看到作业的CPU和内存的使用效率:

图片

我们看到,在MEMORY USAGE(内存使用)中,内存实际使用了509MB,使用效率(MEM Efficiency)是50.90%。

而在 CPU USAGE(CPU使用)中,显示了这几个数值:

  • CPU PEAK(CPU峰值):0.76。因为每个程序一般不会从始至终消耗相同的CPU,这个峰值是指作业运行中所达到的最大值,这里的0.76就表示这个程序目前为止消耗的最大CPU是0.76个。

  • CPU PEAK DURATION (CPU峰值用时):63秒。这个时间是指作业到目前为止消耗CPU达到这个峰值的时间。比如一个作业前60秒消耗0.5个CPU,后60秒消耗2个CPU,那么CPU峰值就是2,CPU峰值用时就是60秒。

  • CPU AVERAGE EFFICIENCY(CPU平均效率)和CPU PEAK EFFICIENCY(CPU峰值效率):在这个作业里,这里两个值都是38.10%,他们分别是作业平均使用的CPU个数除以作业申请的CPU个数的百分比,和作业峰值使用的CPU个数和作业申请的CPU个数的百分比。

04

当作业结束后,除了bjobs -l命令,CPU和内存的使用效率也同时会显示在bhist -l和bacct -l命令的输出中。

图片

图片

图片

05

接下来我们再试另一个作业<833>,让这个作业实际消耗的比申请的多。

图片

如上图所示,我们制作一个作业脚本,这个脚本分为3个阶段,第一个阶段消耗200MB内存,50% CPU,第二阶段会同时跑3个进程,分别消耗1500MB,500MB和1000MB内存,每个进程都会消耗100% CPU,也就是总共3个CPU。第三阶段消耗1000MB内存和1个CPU。

06

以上这个作业脚本在用bsub提交时,我们申请2个CPU和1000MB内存:

图片

07

当作业运行结束后,我们看到作业的CPU AVERAGE EFFICIENCY为71.37%,而CPU PEAK EFFICIENCY为150.00%,而MEM  EFFICIENCY为300.90%。因为CPU和内存的消耗是作业运行过程中由执行节点上的pim和sbatchd守护进程进行周期性收集,所以有时候会有细微的误差。

图片

总结

通过CPU和MEM的使用效率,我们就可以知道作业提交时申请的资源是否合适,从而根据实际情况对后续作业进行调整,让整个集群的资源得到更合理的分配和使用。

除了本文介绍的LSF命令行方法,也可以通过HPCinsights工具直观查看CPU和内存指定不合理的作业,对于经常存在资源指定不合理的研发用户,HPCinsights可以自动发送邮件通知到相关用户,或在用户使用bsub提交作业时,帮助用户自动设置合理的CPU和内存需求,详细请参考《HPCinsights内存预测,助力HPC集群资源优化》。

欢迎关注下方微信公众号【HPC常青园】,共同交流HPC集群管理经验和最佳实践。如果您有关于HPC集群的具体需求,欢迎邮件沟通交流:hpc@ivyent.cn。

HPC常青园

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ivyent

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值