HPC & GPU Engineering/AI Infrastructure Engineer

[HPC/GPU 클러스터 운영 Zero to Hero 20편] QoS와 Fairshare – Slurm 자원 우선순위 정책 설계

ygtoken 2025. 8. 10. 08:50
728x90

 

왜 QoS와 Fairshare가 중요한가

 

HPC/GPU 클러스터는 다수의 사용자가 한정된 자원을 공유합니다.

만약 아무 정책 없이 선착순(FIFO)으로만 Job을 실행한다면, 특정 사용자나 대규모 Job이 자원을 독점해 다른 사용자가 장시간 대기하게 됩니다.

이 문제를 해결하기 위해 Slurm은 **QoS(Quality of Service)**와 Fairshare라는 자원 우선순위 정책을 제공합니다.

 

  • QoS: 자원 사용량과 제한을 직접적으로 설정 (최대 Job 수, GPU 개수, 실행 시간 제한 등)
  • Fairshare: 과거 자원 사용량을 기반으로 가중치를 부여해 자원 점유를 공평하게 배분

 


 

1. QoS(Quality of Service) 개념과 설정

 

QoS는 사용자가 제출하는 Job에 적용되는 자원 사용 규칙입니다.

 

QoS 생성 예시

# 관리자 계정에서 QoS 생성
sacctmgr add qos high_gpu Priority=500 MaxJobsPerUser=2 MaxWall=48:00:00
sacctmgr add qos low_gpu Priority=100 MaxJobsPerUser=10 MaxWall=12:00:00

 

주요 옵션

  • Priority: Job 우선순위 가중치
  • MaxJobsPerUser: 사용자별 동시 실행 Job 수 제한
  • MaxWall: 최대 실행 시간 제한
  • MaxTRESPU: 특정 자원(GPU, CPU, 메모리) 최대 사용량 제한

 


 

QoS를 사용자/계정에 적용

sacctmgr modify user username set qos=high_gpu

 

또는

sacctmgr modify account researchA set qos=low_gpu

 


운영 팁

  • GPU 연구 그룹은 high_gpu, CPU 전용 작업 그룹은 low_gpu로 분리
  • 긴급 Job 전용 urgent QoS를 만들어 Preemption과 결합하면 효과적

 


 

2. Fairshare 개념과 작동 원리

 

Fairshare는 과거 자원 사용량을 기반으로 공정한 자원 배분을 하는 정책입니다.

 

작동 방식:

  1. Slurm은 각 사용자/계정의 공유 자원 점수를 관리
  2. 최근 많이 사용한 사용자는 낮은 점수 → 우선순위 낮음
  3. 사용량이 적은 사용자는 높은 점수 → 우선순위 높음

 


 

Fairshare 우선순위 확인

sshare -l

 

출력 예:

             Account     User  RawShares  NormShares  RawUsage  NormUsage  EffectvUsage  FairShare
--------------- ------ ---------- ---------- --------- ---------- ------------- ----------
root             alice          1      0.5000       1000     0.6000       0.6000     0.4000
root               bob          1      0.5000        200     0.4000       0.4000     0.6000
  • FairShare 값이 높을수록 Job 우선순위가 높음

 


 

Fairshare 설정 예시

 

slurm.conf에 다음과 같이 설정:

PriorityType=priority/multifactor
PriorityWeightFairshare=10000

 

  • PriorityWeightFairshare 값이 높을수록 Fairshare 비중 증가

3. QoS + Fairshare 결합 정책 예시

정책 목적 QoS 설정 Fairshare 역할
GPU 자원 독점 방지 사용자별 GPU 최대 4개 제한 GPU 많이 쓴 사용자의 우선순위 낮춤
장기 Job 제한 MaxWall=48:00:00 사용량 균형 조절
긴급 Job 우선 실행 Priority=1000, Preemption 허용 이미 높은 우선순위 부여

 


 

4. QoS/ Fairshare 기반 운영 시나리오

상황 해결 방법
특정 사용자가 GPU 16개를 장기 점유 QoS로 MaxGRESPerUser=4 제한
소수 사용자만 자원 독점 Fairshare 활성화로 과거 사용량 많은 사용자 우선순위 낮춤
긴급 Job 빠른 실행 필요 urgent QoS 생성 + Preemption 정책 적용

 


 

5. QoS/ Fairshare 장단점

 

장점

  • 다수 사용자 환경에서 자원 활용의 공정성 보장
  • 특정 사용자·Job 유형에 대한 세밀한 정책 설정 가능
  • 운영 정책 변경만으로 자원 배분 최적화 가능

 

단점

  • 설정이 복잡하고 사용자 이해도 필요
  • Fairshare 점수 산정 로직이 직관적이지 않을 수 있음

 


 

6. 실무 팁과 주의사항

  • QoS 정책 변경 시 사용자 커뮤니케이션 필수
  • Fairshare 점수는 장기간 사용량 추적이 필요하므로 테스트 클러스터에서 먼저 검증
  • Preemption과 결합 시, 긴급 Job 처리 속도는 빨라지지만 기존 Job 중단 가능성 주의
  • GPU 환경에서는 QoS에 GPU 제한(MaxGRESPerUser)을 반드시 설정

 


 

정리하며

 

QoS와 Fairshare는 Slurm 자원 스케줄링에서 효율성과 공정성을 동시에 달성하는 핵심 도구입니다.

운영자는 클러스터의 목적과 사용자 특성을 고려해 이 두 기능을 적절히 조합해야 합니다.

다음 21편에서는 Preemption과 정책 설정 – 자원 회수와 긴급 Job 처리 전략을 다루어, QoS/Fairshare 기반 정책을 더욱 강력하게 만드는 방법을 소개하겠습니다.

 

 

728x90