查看队列资源限额和用户资源使用情况
背景
LSF中的 limits 配置模块允许管理员很方便地设置集群资源限额,可以在队列、主机对、应用维度对用户使用的资源如slot/core,、任务数/jobs、内存/mem、交换区/swap,以及自定义资源比如许可证进行限制。
问题
在实际工作中,用户遇到的问题是如何方便快捷地查看队列上设置的资源限额,以及当前用户资源使用情况?
解决方案
LSF提供了 blimits 命令查询限额配置和用户资源使用情况,但需要使用不同的参数组合,运行多次。 我们可以通过创建脚本 bquota 通过一条命令显示队列上配置的资源限额和用户资源使用情况。简化用户操作,不需要记忆复杂的参数。
bquota 脚本示例如下:
bash
#!/bin/bash
queueName=$1
[ "x$queueName" == "x" ] && {
echo "请指定队列名称。"
exit 1
}
echo "***** 队列 ${queueName} 任务资源限额配置 *****"
echo
t=$(blimits -c -q ${queueName})
[ "$t" == "No resource configuration found." ] && {
echo "没有配置队列任务资源限额"
} || {
blimits -c -q ${queueName}
}
echo
for l in $(blimits -c -q ${queueName}|grep NAME|awk -F = '{ print $2 }')
do
echo "***** ${l} 资源使用 *****"
t=$(blimits -w -n $l)
[ "$t" == "No resource usage found." ] && {
echo "无资源使用记录"
} || {
blimits -w -n $l
}
echo
done
使用方式
使用方式很直接,在命令行跟上队列名称即可
bquota queue_name
ini
[lsfadmin@master bin]$ bquota admin
***** 队列 admin 任务资源限额配置 *****
Begin Limit
NAME = admin_limit
PER_USER = lsfadmin
PER_QUEUE = admin
SLOTS = 100
JOBS = 10
End Limit
***** admin_limit 资源使用 *****
INTERNAL RESOURCE LIMITS:
NAME USERS QUEUES HOSTS PROJECTS APPS SLOTS MEM TMP SWP JOBS
admin_limit lsfadmin admin - - - 10/100 - - - 10/10