Skip to content

user priority 설정 #139

Description

@jhgoh

slurm job의 user priority 설정이 필요하게 됨.

아래는 claude의 작업 요약:

진행 내용 (accounting + user priority)

배경

Slurm accounting storage가 꺼져있어서 sacct도 안 되고, 여러 유저가 동시에 잡을 넣을 때 우선순위 조정 수단이 없었음. 이번 작업으로 두 가지를 같이 해결.

1. Slurm Accounting (slurmdbd + MariaDB) 구축

  • MariaDB를 k8s에 배포 (namespace: slurm, hostPath PV, hep 노드 고정, hostPort 3306을 127.0.0.1에만 바인딩해서 hep 외부에서는 접근 불가)
  • slurmdbd 패키지 설치, /etc/slurm/slurmdbd.conf 작성 (StorageHost=127.0.0.1, StorageType=accounting_storage/mysql)
  • slurm.conf에 다음 추가 후 전체 노드(hep, raikou, entei, suicune, ho-oh, lapras, naong) 배포 + scontrol reconfigure:
AccountingStorageType=accounting_storage/slurmdbd
AccountingStorageHost=hep
AccountingStoragePort=6819
JobAcctGatherType=jobacct_gather/linux
JobAcctGatherFrequency=30
  • 검증: sacct 실행 시 실제 잡 이력(State/ExitCode 등) 정상 출력 확인. sacctmgr show cluster로 클러스터 자동 등록 확인.

2. User Priority 설정

  • 정식 fairshare(계정별 사용량 기반 우선순위)는 sacctmgr로 매 유저를 수동/자동 등록·유지해야 하는 운영 부담이 있어 이번엔 보류.
  • 대신 등록 없이 바로 적용 가능한 age-based priority만 적용:
PriorityType=priority/multifactor
PriorityWeightAge=1000
PriorityWeightFairshare=0
PriorityWeightJobSize=0
PriorityWeightPartition=0
PriorityWeightQOS=0
PriorityMaxAge=3-0
  • 오래 대기한 잡일수록 우선순위가 점점 올라가서(최대 3일), 특정 유저가 자동화 스크립트로 잡을 계속 새로 밀어넣어도 먼저 기다리던 다른 유저 잡이 우선권을 갖게 됨.
  • sprio -l로 pending 잡에 priority factor(AGE 컬럼 등)가 정상적으로 계산되는 구조 확인.

참고 (부수적으로 발견/해결)

  • k8s 네임스페이스 삭제가 metrics.k8s.io/v1beta1 APIService discovery 실패로 인해 영구적으로 안 되는 클러스터 전역 이슈 발견. 이번에 새로 만든 slurm 네임스페이스도 걸렸었고, 강제 finalize로 해결. indico 네임스페이스(2년 넘게 Terminating)도 같은 방식으로 클린업함.
  • 근본 원인(v1beta1.metrics.k8s.io APIService)은 아직 안 고쳐서, 나중에 다른 네임스페이스 삭제 시 재발 가능 — 별도 확인 필요.

남은 작업

  • fairshare 필요해지면 sacctmgr 계정/유저 등록 (자동화 스크립트 초안 있음: users 그룹 멤버 기준 sync)
  • MariaDB InnoDB 튜닝값(innodb_buffer_pool_size) 권장치 미달 경고 남아있음 — 성능에 치명적이진 않으나 개선 여지 있음
  • metrics.k8s.io APIService discovery 실패 근본 원인 조사/수정

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