您的位置:首页 > 产品设计 > UI/UE

maui 限制使用节点数

2016-04-29 16:28 1136 查看
转载自:点击打开链接

想限制每个用户使用的节点数,但这一问题的解决颇费了一番周折:

1. 最初想到直接从 pbs_server 层面上改,直接修改 qmgr -c 'set queue qxx max_user_run=5' 可以设置队列 qxx 中每个用户最多同时运行 5 个任务。这个修改不用重启 pbs_server 服务直接生效。但问题是,这个只是限制任务数而非节点数,如果一个任务使用N多节点是不被限制的,另外,这个只针对某一队列生效,无法对整个集群生效。而 qmgr 里没有针对某个用户限制节点数的功能。

2. 尝试修改 maui 的配置,毕竟高级的调度是由 maui 负责的。手册上说 MAXNODE 可以限制节点数,于是在 maui.cfg 配置文件里加上 USERCFG[DEFAULT]  MAXNODE=5 然后重启 maui 服务(不需重启 pbs_servr),结果却是不管用!经各种尝试都无效,而且
CLASSCFG[DEFAULT] MAXNODEPERUSER=5 这种设置也无效。似乎和 NODE 数相关的都无效的样子。

3. 在另外一台机器上尝试,因为该台机器只有自己一个节点,无法尝试 MAXNODE,于是尝试 MAXPROC(最大“处理器”数,其实就是核数) USERCFG[DEFAULT] MAXPROC=4 结果发现依然不管用!奇了怪了!经过一番尝试,终于发现,原来该机器上 torque 默认使的是自己的调度器 pbs_sched,也就是说根本没有使用 maui 进行调度!不过这时查看 maui 的日志却发现它能识别目前提交的任务核数已超出限制,只不过它无法控制而已,由于这一点所以之前一直以为 maui 在起作用,所以才很久没发现
psb_sched 的问题。当把 pbs_sched 关了以后,maui 才真正起了作用!(当然,还有个大前提,就是 pbs_server 的设置中启用了调度器,也就是说 qmgr 里应设置 set server scheduling = True,当然这个在这里早就设好了的)。

4. 回到原来集群,设置 USERCFG[DEFAULT] MAXPROC=80 然后重启 maui 服务就生效了!由于一个节点 16 个核,所以 80 个核就相当于 5 个节点。其中 DEFAULT 默认表示所有的,如果对某个用户限制,可将其替换为该用户名即可,比如 USERCFG[user1] ....。后来又尝试了 MAXJOB 的限制,也管用。

总之,maui 里不知为何 MAXNODE 不管用,但可以变通的用 MAXPROC 来限制。

 

当使用 maui 进行调度时,应使用 maui 的一些命令来查看任务和队列才能更好的了解的 maui 的管理情况。比如 diagnose -u 可以查看 maui 对各用户的设置; diagnose -q 可以查看队列里被限制的任务,通过这个命令可以查看 maui 是否有效的执行了命令,比如限制 MAXPROC=80,当有用户提交第 6 个任务时超出了此限制,因而被 blocked,那么在 diagnose -q 中就能看到这个被阻塞的任务,当然也可以用 showq 来查看,最后 blocked 部分的任务就是被
maui 限制的任务,而 idle 里的则是正常排队的。

 

最后提一下,如下 maui 设置可以有效的使各个节点负载均衡,避免某台机器长期使用而某台长期空闲:

NODEALLOCATIONPOLICY PRIORITY

NODECFG[DEFAULT] PRIORITYF='-LOAD - 5*USAGE'

注 1:所用版本为 torque 4.2.8 + maui 3.3.1

注 2:后来查到官网上的说明中提到了 MAXNODE 可能不管用这一点

      http://docs.adaptivecomputing.com/maui/6.2throttlingpolicies.php

      NOTE: on some systems (including torque/pbs) nodes have been softly defined rather than strictly defined; ie. a job may request 2 nodes but torque will translate this request to 1 node with 2 procs.
This can prevent Moab from enforcing a MAXNODE policy correctly for a single job. Correct behavior can be achieved using MAXPROC.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maui