Slurm에 있는 클러스터 구성 파일의 slurm.conf

1. slurm.conf 소개

slurm.conf 는 일반적인 Slurm 구성 정보, 관리할 노드, 해당 노드를 파티션으로 그룹화하는 방법에 대한 매개 변수, 해당 파티션과 관련된 다양한 일정을 설명하는 ASCII 파일입니다. 이 파일은 클러스터의 모든 노드에서 일관성이 있어야 합니다. 파일 위치 환경 변수는 SLURM_CONF 환경 변수를 설정하여 실행 시 수정할 수 있습니다. Slurm 데몬을 사용하면 "-f" 및 환경에서 제공하는 위치 옵션을 사용하여 기본 제공 위치를 재정의할 수도 있습니다.

파일의 내용은 노드 이름과 파티션을 제외하고 대소문자를 구분하지 않습니다. 구성 파일에서 "#" 뒤의 모든 텍스트는 줄 끝에서 주석으로 처리됩니다. 별도의 언급이 없는 한 Slurm 데몬을 다시 시작하거나, SIGHUP 신호를 수신하거나, "scontrol reconfig" 명령을 실행한 후에 구성 파일을 변경합니다.

행이 "include"라는 단어로 시작하고 그 뒤에 공백과 파일 이름이 있는 경우 해당 파일에는 현재 파일과 함께 구성 파일이 인라인으로 포함됩니다. 대규모 또는 복잡한 시스템의 경우 여러 구성 파일을 관리하고 특정 파일을 재사용하는 것이 더 쉬울 수 있습니다.

2. 파일 권한에 대한 참고 사항:

slurm.conf 파일은 많은 Slurm 명령에서 사용되기 때문에 Slurm의 모든 사용자가 읽을 수 있어야 합니다. 로그 파일 및 작업 계정 파일과 같이 slurm.conf 파일에 정의된 다른 파일은 성공적으로 액세스하기 위해 "SlurmUser" 사용자가 생성/소유해야 할 수 있습니다. "chown" 및 "chmod" 명령을 사용하여 소유권 및 적절한 권한을 설정합니다.

3. 파일 위치

slurm.conf는 설치 디렉토리의 etc 폴더에 있습니다.

slum.conf의 구성과 관련하여 먼저 설치 패키지 디렉토리에 있는 etc 파일 slurm.conf.example을 설치 디렉토리에 복사한 다음 이름을 slurm.conf로 변경하고 매개변수를 수정할 수 있습니다.

4. 세부 구성 매개변수

# configurator.html에 의해 생성된 slurm.conf 파일
# 이 파일을 클러스터의 모든 노드에 배치
# 자세한 내용은 slurm.conf 매뉴얼 페이지 참조
ControlMachine=#Primary node name
ControlAddr=#Primary node IP
#BackupController =# 백업 노드
#BackupAddr=# 백업 노드 IP
AuthType=auth/munge #Internal Authentication
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/s lurm
#Licenses=foo*4,bar
#MailProg=/bin/mail
MaxJobCount=3000000 #최대 작업 수는 3백만 개입니다.
#MaxStepCount=40000
#MaxTasksPerNode=128
MpiDefault=none
#MpiParams=ports=#-#
#MpiParams=ports=12000-12999
#PluginDir=
#PlugStackConfig=
#PrivateData=jobs
#ProctrackType=proctrack/pgid
ProctrackType=proctrack/linuxpro c# 프로세스 추적 플러그인
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#Topology 스케줄링 트리
#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 #코어 스케줄링 기반
#SelectTypeParameters=CR_Core_Memory #코어 및 메모리 스케줄링 기반
#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= #작업 크기 가중치 #Priority WeightPartition
=1000 #파티션 가중치
# PriorityWeightQOS= #QOSweight #
slurmdbd.conf에서만 허용됨
#AccountingStorageType=accounting_storage/none
#AccountingStorageType=accounting_storage/filetxt
#AccountingStorageType=accounting_storage/mysql
AccountingStorageType=accounting_storage/slurmdbd #Enable slurmdbd
AccountingStorageUser=root #계정 서비스 기록
AccountingStoreJobComment=YES #작업 설명 기록
ClusterName=cluster_gv171 #클러스터 이름
# LOGGING AND ACCOUNTING
#AccountingStorageEnforce=0
AccountingStorageEnforce=associations,limits #조직 연결 및 자원 제한
AccountingStorageHost=#主用客户服务
#AccountingStorageBackupHost=#备用配资服务
#회계 StorageLoc =/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 #Job 수집 간격
#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 #Compute 노드 로그
#SlurmdLogFile=/opt/slurm18/log/slurmd.log
PreemptMode=requeue,gang #선점 전략
PreemptType=preempt/partition_prio #대기열 우선 순위
# 유휴 노드에 대한 절전 지원(선택 사항)
#SuspendProgram=
#ResumeProgram=
#SuspendTimeout=
#ResumeTimeout=
#ResumeRate=
#SuspendExcNodes=
#SuspendExcParts=
#SuspendRate =
SuspendTime=1800
PrivateData=accounts,events,jobs,reservations,usage,users # Authority Control #
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 명령으로 얻을 수 있습니다.

추천

출처blog.csdn.net/lovebaby1689/article/details/128683850