调度器是集群上调度作业的软件,负责分发作业、处理作业优先级、按需分配计算节点资源(如vCPU、内存、节点个数)等。您可以根据作业大小,预估使用的节点资源和作业完成时间,设置集群的调度器参数,从而提高资源使用率。本文介绍如何在控制台设置调度器参数。
使用限制
集群的调度器为Slurm或者PBS。其他类型的调度器暂不支持通过控制台设置参数。
操作步骤
打开调度器页面。
登录弹性高性能计算控制台。
在顶部菜单栏左上角处,选择地域。
在左侧导航栏,选择
。
在集群列表选择目标集群,在调度器列表选择调度器。
设置调度器配置信息,然后在页面右上角,单击提交。
Slurm
如果是Slurm调度器,可以设置以下参数:
参数
说明
主调度周期
调度计时器Timer,表示每隔多少时间发起调度。
假设集群只有一个1 vCPU的节点,如果主调度周期设置为20s,则连续提交两个需要1 vCPU、运行时间为30s的作业A和作业B时,作业的运行情况如下:
0s:开始调度,作业A开始Running,作业B为Pending。
20s:触发调度,作业A仍在Running,作业B为Pending(触发调度,但是没有空闲资源供作业B使用)。
30s:作业A为Complete,作业B仍在Pending(尽管有资源空闲,但由于没有触发调度,作业B无法获取资源去运行)。
40s:再次触发调度,作业B开始Running。
Backfill调度周期
Backfill调度计时器,触发调度时打破优先级顺序,会尽可能将小负载任务优先提交以保证高CPU使用率。
假设集群只有一个8 vCPU的节点,如果Backfill周期设置为10s,则提交两个高优先级需要6 vCPU、运行时间为60 min的作业A和作业B后,再提交一个低优先级需要2 vCPU、运行时间为40 min的作业C时,作业运行情况如下:
0s:开始调度,作业A开始Running,作业B和作业C为Pending(由于作业B优先级高于作业C,即使有空闲资源运行作业C,也没有触发调度)。
10s:触发Backfill调度,判断小负载的作业C可以绕过高优先级的作业B提前运行,以保证更高的CPU使用率。此时作业A为Running,作业B为Pending,作业C为Running。
40 min:作业A为Running,作业B为Pending,作业C为Complete。
60 min:作业A为Complete,作业B为Running,作业C为Complete。
PBS
如果是PBS调度器,可以设置以下参数:
参数区域
参数
说明
调度器全局参数配置
历史作业保留时间
历史作业的保留时间。超过保留时间后,作业数据会被销毁。
调度周期
相邻调度周期的时间间隔。如果没有其他操作触发调度(例如提交作业、重启调度服务),则时隔调度周期触发一次调度。
最大作业数
最大允许的作业数。
最大排队作业数
最大允许的排队作业数。
调度器队列参数配置
队列
选择要设置的队列。
队列资源限制
单击新增限制。限制项如下:
用户:选择要限制的用户。
CPU:在选择的队列中,该用户可以使用的最大vCPU个数。
内存:在选择的队列中,该用户可以使用的最大内存数。例如
1 gb
,200 mb
等。节点:在选择的队列中,该用户可以使用的最大节点数。
最大作业数:在选择的队列中,该用户可以提交的最大作业数。
队列用户映射
单击新增用户,在弹出的对话框中选择用户,单击确定,即可设置所选队列仅能被该用户使用。
说明默认情况下,所选队列可以被集群的所有用户使用。设置后,所选队列仅能被选择的用户使用。