LSF实践专题(32):对作业的内存和CPU使用进行限制

本文详细介绍了如何在LSF中设置作业的内存和CPU限制,包括在queue、application和作业提交时的设置方法,以及LSF的各种配置参数如LSB_MEMLIMIT_ENFORCE和LSB_JOB_MEMLIMIT的作用。此外,还讨论了LSF与LinuxCGROUP的集成,以实现更精确的资源控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们曾经在LSF实践专题(4):如何限制作业的最大内存中探讨过:在LSF集群中运行作业的时候,存在某些作业使用的程序出现问题,或者没有规划好,导致其他进程无法分配到足够内存的情况。

这次我们继续延伸话题:这样的错误不仅会占用内存,还会浪费CPU资源。如果当前的计算节点并不是作业独占模式,这种情况甚至会影响别的作业正常运行,这时,管理员可以设置作业的“能够使用的内存大小和CPU时间”,来防止某些作业占用过多的内存和CPU资源。

通常,我们可以在queue和application,或者提交作业的时候来设置内存或CPU时间限制,即MEMLIMIT或CPULIMIT的参数值,来限制所有提交到该队列或者application中的作业可以使用的内存大小和CPU时间。

例如设置在queue中:

图片

如图,队列queue1中设置了CPULIMIT=10,表示队列queue1中的作业所使用的CPU时间不能超过10分钟。队列queue2中设置了MEMLIMIT=200,表示队列queue2中的作业使用的内存不能超过200MB。

提示:CPULIMIT的默认单位是分钟,MEMLIMIT的默认单位是MB。

使用badmin mbdrestart命令重启LSF管理节点上的mbatchd服务后,我们通过bqueues -l命令查看两个队列,可以看到生效的LIMIT中写明了对应的单位。

图片

图片

在CPULIMIT中显示了节点名称,是因为在以前不同的CPU架构的效能差异比较大,在比较快的CPU上运行10分钟的工作,可能需要在较差的CPU上运行15到20分钟,所以LSF具有根据不同节点上不同的CPU架构来动态修改CPULIMIT的功能。

但是现在的CPU基本已经没有这个问题,LSF在安装时就自动设置了ABS_RUNLIMIT=Y来去掉这个功能,只是在界面上仍然保留了节点名称的显示,作为兼容老版本的考虑。

接下来我们在application中设置,这次我们尝试一下不同的格式:

图片

我们在app3中设置了CPULIMIT=1:30,这表示设置CPU时间的LIMIT为1小时30分钟,如果写成CPULIMIT=90其实也是一样的效果。同时我们也设置了MEMLIMIT=1G,这里我们带了单位,表示设置内存LIMIT为1GB。

用badmin mbdres

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

常算科技

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

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

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

打赏作者

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

抵扣说明:

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

余额充值