工作背景:
集群中所有队里再使用过程中,频繁出现mem使用不均衡情况从而导致部分机器的jobs 变成SSUP状态;
状态 描述
PEND 作业在队列中等待被调度和分发。
RUN 作业已被分发至某个主机且正在执行。
DONE 作业已正常执行完成(退出码为 0)。
PSUSP 原 PEND 状态的作业,被该作业的提交者或管理员挂起。
USUSP 作业在被分发后,作业的提交者或管理员将其挂起。
SSUSP 作业在被分发后,系统将其挂起。
EXIT 作业非正常终止(退出码非 0)
出现问题原因:
1)用户再提交任务过程中rusage预留mem资源不规范,mem值过小或者没有设置rusage
2)根据公司情况,集群内调度策略不合适,内存资源使用不规范,默认调度策略为:默认的排序字符串为 order[r15s:pg]
问题解决思路:
1)设置默认mem预留策略
2)调整集群内队列的调度策略用内存来优先调度,即选择用mem作为调度策略
负载信息中各项的含义如下:
❖ r15s:15 秒指数平均 CPU 运行队列长度。
❖ r1m:1 分钟指数平均 CPU 运行队列长度。
❖ r15m:15 分钟指数平均 CPU 运行队列长度。
❖ ut:最近 1 分钟内的 CPU 指数平均利用率,取值范围为 0 至 1。
❖ io:默认关闭。当-l 选项指定时,显示最近 1 分钟内的指数平均磁盘 I/O 速率,以 KB/
秒计算。
❖ pg:最近 1 分钟内的指数平均内存分页率,以页数/秒计算。
❖ ls:当前登录的用户的个数。
❖ it:主机的空闲时间(即所有已登录的会话中未发生键盘操作),以分钟计算。
❖ tmp:/tmp 下可用空间的大小(MB)。
❖ swp:可用的交换空间的大小。默认情况下,该值以 MB 为单位显示。
❖ mem:可用的内存量。默认情况下,该值以 MB 为单位显示
增加队列参数如下:
RESRSV_LIMIT = [mem=0,8000000]
RES_REQ = rusage[mem=10000] order[mem] #rusage10G mem Schedule first
注意事项:
1)RESRSV_LIMIT 必须限制,否则当用户设置rusage[mem=100000] 当设置大于默认的10000时,会无法提交jobs 、
报错如下:
2)lsf 队列中仅仅识别一个RES_REQ参数,必须写成一行才生效