Skip to content

사용량 기준 priority 적용 #141

Description

@jhgoh

slurm job 사용량 기준 priority를 적용.

아래는 claude가 작성한 작업 요약.


관련: #139 (age 기반 우선순위의 후속)

배경

  • #139에서 넣은 age 기반 우선순위는 사실상 "먼저 온 순서"라, 큰 array를 먼저 넣은 유저가 클러스터를 통째로 가져감
  • 실제 사례 (9/29 밤): joshin이 약 2300개짜리 array를 넣은 뒤 sunkyu131은 새 슬롯을 하나도 못 받음 (22시 이후 시작한 잡 0개). 잡이 끝날 때마다 joshin이 자리를 가져가는 구조
  • 그룹 간에 나눠 쓰도록 fairshare 도입

설계

  • 수동 등록: 보안상 자동 등록 cron은 쓰지 않음. adduser 할 때 sacctmgr 등록도 같이 하는 절차로 운영
  • 그룹별 account: root 아래 cms, cpnr, hep-khu 세 그룹, 모두 Fairshare=1 (셋 다 바쁘면 1/3씩)
  • 여러 account 소속은 의도된 설정: 연구실 멤버에게 다양한 우선권을 주기 위함. 기본 account 외에는 sbatch -A <account>로 선택

Account 구성

root
├── cms      jhgoh, joshin, slowmoyang
├── cpnr     sunkyu131, sykim, jhgoh, wonsang1995 외 (총 19명)
└── hep-khu  jhgoh, joshin, wonsang1995

기본 account: jhgoh / joshin / wonsang1995 → hep-khu, slowmoyang → cms, 나머지 → cpnr

적용 내용

1. account / 유저 등록

sacctmgr -i add account cpnr Parent=root Fairshare=1
sacctmgr -i add user <이름> Account=<그룹> Fairshare=1
sacctmgr show assoc tree format=Account,User,Fairshare

2. slurm.conf

PriorityDecayHalfLife=1-0         # 새로 추가 (기본값 7일 → 1일)
PriorityWeightFairshare=10000     # 0 → 10000

나머지(PriorityWeightAge=1000, PriorityMaxAge=3-0)는 그대로. 전 노드 배포 후 scontrol reconfigure

3. 기존 대기 잡에 account 연결

등록 전에 제출된 잡은 account가 (null)이라 fairshare 0점이 됨

squeue -t PD -o "%.12F %.10u %.10a" | sort -u
scontrol update jobid=<ArrayJobID> account=<그룹>   # array는 ArrayJobID 하나로 전체 적용

검증

  • sshare -a (적용 시점): cpnr RawUsage 51304, hep-khu 59860. FairShare: cms 유저 1.00, cpnr 유저 0.84, sunkyu131 0.16, hep-khu 유저 0.12, joshin 0.04
  • sprio -l: joshin array 우선순위 447 = age 47 + fairshare 400. sunkyu131은 점수가 높아 대기 없이 바로 실행됨
  • Grafana: joshin 실행 수가 약 245개에서 멈추고 sunkyu131이 다시 슬롯을 받기 시작함. joshin 대기 사유가 Resources → Priority로 바뀜

운영 참고

  • 신규 유저: adduser <이름> 후 sacctmgr -i add user <이름> Account=<그룹> Fairshare=1. 삭제할 때도 sacctmgr -i delete user <이름>
  • 미등록 유저는 fairshare 0점이라 최하위로 밀림 → 등록 누락 주의
  • Fair Tree 방식: 그룹 순위가 먼저, 그 안에서 유저 순위. 많이 쓴 그룹의 유저는 사용량이 0이어도 덜 쓴 그룹의 유저보다 뒤
  • 반감기 1일: 어제 사용량은 절반, 이틀 전은 1/4만 반영
  • 확인 명령: sshare -a, sprio -l

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    adminServer administration

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions