1.slurm.conf简介
slurm.conf是一个ASCII文件,它描述了一般的Slurm 配置信息、要管理的节点、有关如何将这些节点分组到分区中,以及各种调度与这些分区关联的参数。此文件应为在群集中的所有节点上保持一致。可以通过设置SLURM_CONF在执行时修改文件位置 环境变量。Slurm 守护进程还允许您覆盖 使用“-f”的内置位置和环境提供的位置 选项。
文件的内容不区分大小写,但节点名称除外 和分区。将处理配置文件中“#”后面的任何文本 作为该行末尾的评论。 对配置文件的更改在重新启动 Slurm 守护进程、接收 SIGHUP 信号的守护进程或执行 命令“scontrol reconfig”,除非另有说明。
如果一行以单词“包括”开头,后跟空格 然后是一个文件名,该文件将与当前文件内联包含 配置文件。对于大型或复杂的系统,多个配置文件 可能更易于管理和启用某些文件的重用。
2.关于文件权限的说明:
slurm.conf 文件必须可供 Slurm 的所有用户读取,因为它 被许多 Slurm 命令使用。定义的其他文件 在 slurm.conf 文件中,例如日志文件和作业记帐文件, 可能需要由用户“SlurmUser”创建/拥有才能成功 访问。使用 “chown” 和 “chmod” 命令设置所有权 和适当的权限。
3.文件所在位置
slurm.conf在安装目录的etc文件夹中
关于slum.conf的配置,也可以先将安装包目录的etc文件slurm.conf.example拷贝到安装目录下,然后重命名为slurm.conf,并进行参数的修改。
4.配置参数详解
# slurm.conf file generated by configurator.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
ControlMachine=#主用节点名
ControlAddr=#主用节点IP
#BackupController=#备用节点
#BackupAddr=#备用节点IP
AuthType=auth/munge #内部认证
CacheGroups=0
#CheckpointType=checkpoint/none
CryptoType=crypto/munge
#DisableRootJobs=NO
#EnforcePartLimits=NO
#Epilog=/opt/slurm18/etc/slurm.epilog
#Prolog=/opt/slurm18/etc/slurm.prolog
#EpilogSlurmctld=/opt/slurm18/etc/slurmctld.epilog
#PrologSlurmctld=/opt/slurm18/etc/slurmctld.prolog
#SrunEpilog=
#SrunProlog=
#TaskEpilog=/opt/slurm18/etc/slurm.epilog
#TaskProlog=/opt/slurm18/etc/slurm.prolog
#FirstJobId=1
#MaxJobId=999999
#GresTypes=
#GroupUpdateForce=0
#GroupUpdateTime=600
#JobCheckpointDir=/opt/slurm18/checkpoint
#JobCredentialPrivateKey=
#JobCredentialPublicCertificate=
#JobFileAppend=0
#JobRequeue=1
#JobSubmitPlugins=1
#JobSubmitPlugins=lua #提交参数过滤
#KillOnBadExit=0 #异常作业清理
#LaunchType=launch/slurm
#Licenses=foo*4,bar
#MailProg=/bin/mail
MaxJobCount=3000000 #最大作业数300万
#MaxStepCount=40000
#MaxTasksPerNode=128
MpiDefault=none
#MpiParams=ports=#-#
#MpiParams=ports=12000-12999
#PluginDir=
#PlugStackConfig=
#PrivateData=jobs
#ProctrackType=proctrack/pgid
ProctrackType=proctrack/linuxproc #进程跟踪插件
PrologFlags=Alloc
#RebootProgram=
ReturnToService=2 #禁用自动恢复
#SallocDefaultCommand=
#SlurmctldPidFile=/opt/slurm18/run/slurmctld.pid
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmctldPort=6817 # 主控服务端口
#SlurmdPidFile=/opt/slurm18/run/slurmd.pid
SlurmdPidFile=/var/run/slurmd.pid
SlurmdPort=6818 #计算代理端口
SlurmdSpoolDir=/opt/slurm18/spool/slurmd # 计算代理缓存
SlurmUser=root #运行用户
#SlurmdUser=root # slurmd运行用户
StateSaveLocation=/opt/slurm18/spool # slurmctld本地文件缓存
SwitchType=switch/none
TaskPlugin=task/affinity # 资源控制方式cpuset
#TaskPlugin=task/cgroup # 资源控制方式cgroups
#TaskPlugin=task/none # 无特殊资源控制方式
#TaskPluginParam=
TaskPluginParam=sched
#TopologyPlugin=topology/tree#拓扑调度tree
#TopologyPlugin=topology/3d_torus #拓扑调度3d_torus
#TmpFS=/tmp
#TrackWCKey=no
#TreeWidth=
#UnkillableStepProgram=
#UsePAM=0
# TIMERS
#BatchStartTimeout=10
#CompleteWait=0
#EpilogMsgTime=2000
#GetEnvTimeout=2
#HealthCheckInterval=60 #检查间隔
#HealthCheckProgram=/usr/sbin/nhc #检查工具
InactiveLimit=0
KillWait=30
MessageTimeout=30
#ResvOverRun=0
MinJobAge=300 #完成作业保留时间
#OverTimeLimit=0
SlurmctldTimeout=30 #主备切换时间
SlurmdTimeout=300 #计算代理响应时间
#UnkillableStepTimeout=60
#VSizeFactor=0
Waittime=0
# SCHEDULING
#DefMemPerNode=100
#MaxMemPerNode=200
#DefMemPerCPU=30
#DefMemPerCPU=30
#MaxMemPerCPU=70
FastSchedule=1 #快速调度作业
#MaxMemPerCPU=60
#SchedulerRootFilter=1
#SchedulerTimeSlice=30
SchedulerType=sched/backfill #启用回填调度
#SchedulerType=sched/builtin #启用FIFO调度
SchedulerPort=7321 #调度器端口
SelectType=select/cons_res #资源选择算法
SelectTypeParameters=CR_Core #基于Core调度
#SelectTypeParameters=CR_Core_Memory #基于Core和内存调度
#SchedulerParameters=defer,default_queue_depth=50,bf_max_job_test=50
SchedulerParameters=batch_sched_delay=3,defer,sched_min_interval=10,sched_interval=30,default_queue_depth=100,bf_max_job_test=100,bf_interval=30
# 作业优先级
#PriorityFlags=
#PriorityType=priority/multifactor #优先级策略
#PriorityDecayHalfLife=30 #半衰期时长
#PriorityCalcPeriod=5 #FS统计间隔
#PriorityFavorSmall=
#PriorityMaxAge=
#PriorityUsageResetPeriod=
#PriorityWeightAge=
#PriorityWeightFairshare=1000 #FS权重
#PriorityWeightJobSize= #JobSize权重
#PriorityWeightPartition=1000 #分区权重
#PriorityWeightQOS= #QOS权重
# only permitted in slurmdbd.conf
#AccountingStorageType=accounting_storage/none
#AccountingStorageType=accounting_storage/filetxt
#AccountingStorageType=accounting_storage/mysql
AccountingStorageType=accounting_storage/slurmdbd #启用slurmdbd
AccountingStorageUser=root #记账服务
AccountingStoreJobComment=YES #记录作业注释
ClusterName=cluster_gv171 #集群名
# LOGGING AND ACCOUNTING
#AccountingStorageEnforce=0
AccountingStorageEnforce=associations,limits #组织关联和资源限制
AccountingStorageHost=#主用记账服务
#AccountingStorageBackupHost=#备用记账服务
#AccountingStorageLoc=/opt/slurm18/accounting/accounting
#AccountingStorageLoc=gv_slurm_db
#AccountingStoragePass=111111
AccountingStoragePort=7031 #记账服务端口
#DebugFlags=NO_CONF_HASH # 调试标识
#JobCompHost=localhost
#JobCompLoc=/opt/slurm18/job_completions/job_completions
#JobCompLoc=gv_slurm_db
#JobCompPass=111111
#JobCompPort=3309
JobCompType=jobcomp/none #禁止生成comp日志
#JobCompType=jobcomp/mysql
#JobCompType=jobcomp/filetxt
#JobCompType=jobcomp/slurmdbd
JobCompUser=root
#JobContainerType=job_container/none
JobAcctGatherFrequency=300 #作业采集间隔
#JobAcctGatherType=jobacct_gather/none
JobAcctGatherType=jobacct_gather/linux #启用Linux插件
JobRequeue=1 # 允许重新排队
SlurmctldDebug=3 #slurmctld日志级别
SlurmctldLogFile=/opt/slurm18/log/slurmctld.log #管理节点日志
SlurmdDebug=3 #slurmd日志级别
SlurmdLogFile=/opt/slurm18/log/slurmd_%h.log #计算节点日志
#SlurmdLogFile=/opt/slurm18/log/slurmd.log
PreemptMode=requeue,gang #抢占策略
PreemptType=preempt/partition_prio #队列优先级
# POWER SAVE SUPPORT FOR IDLE NODES (optional)
#SuspendProgram=
#ResumeProgram=
#SuspendTimeout=
#ResumeTimeout=
#ResumeRate=
#SuspendExcNodes=
#SuspendExcParts=
#SuspendRate=
SuspendTime=1800
PrivateData=accounts,events,jobs,reservations,usage,users # 权限控制
#GresTypes=gpu,mic
DebugFlags=NO_CONF_HASH
# COMPUTE NODES
NodeName=gv245 CPUs=2 State=IDLE
PartitionName=debug Default=YES PriorityTier=6000 State=UP MaxTime=INFINITE Nodes=ALL ##可以通过命令 slurmd -C 获得