멀티유저 환경에서의 자원 경쟁 문제
HPC 및 GPU 클러스터는 대부분 여러 사용자 그룹이 동시에 공유하는 멀티테넌트 환경으로 운영됩니다. 연구소, 기업, 대학 HPC 센터에서는 수십~수백 명의 사용자가 동시에 Job을 제출하며, 각자의 요구사항은 크게 다릅니다.
예를 들어 일부 사용자는 장시간 대규모 GPU 학습을 요청하는 반면, 다른 사용자는 짧고 반복적인 실험을 원합니다. 이런 상황에서 단순한 FIFO(First-In-First-Out) 방식이나 우선순위 기반 큐잉만으로는 공정성을 보장하기 어렵습니다. 특정 사용자 또는 팀이 클러스터를 과도하게 점유하면, 다른 사용자들은 Job이 밀려 불만이 커집니다.
이를 해결하기 위해 Multi-QoS(Quality of Service)와 Fairshare 정책을 조합한 복합 스케줄링 전략이 필요합니다.
QoS(Quality of Service)의 개념
QoS는 사용자가 제출하는 Job에 대해 우선순위·시간·자원 제한을 부여하는 기능입니다. Slurm에서는 QoS를 통해 다음과 같은 제약을 줄 수 있습니다.
| QoS | 파라미터설명 |
| Priority | 큐에서 Job의 우선순위를 결정합니다. |
| GrpTRES | 그룹 단위 자원 제한(Total Resource) 설정입니다. |
| MaxWall | Job이 점유할 수 있는 최대 실행 시간을 제한합니다. |
| MaxJobs | 동시에 실행 가능한 Job 수를 제한합니다. |
| Preempt | 다른 QoS의 Job을 선점(Preemption)할 수 있도록 설정합니다. |
QoS는 단일 정책만으로도 강력하지만, 다양한 사용자 그룹이 얽힌 상황에서는 Fairshare와 함께 설계해야 균형이 맞습니다.
Fairshare의 개념
Fairshare는 과거 자원 사용량을 기반으로 Job 우선순위를 조정하는 방식입니다. 특정 사용자가 최근에 자원을 많이 사용했다면, 새로 제출하는 Job의 우선순위가 낮아지고, 반대로 사용량이 적었던 사용자는 우선순위가 올라갑니다.
이렇게 하면 전체 사용자 간 자원 사용이 장기적으로 균형을 이루게 됩니다. Slurm에서는 Fairshare 정책을 PriorityWeightFairshare로 활성화하고, sacctmgr를 통해 사용자별/그룹별 공유 트리를 정의합니다.
# 사용자 그룹별 Fairshare 트리 생성 예시
sacctmgr add qos research qos=research priority=100
sacctmgr add qos production qos=production priority=200
sacctmgr add account ai_cluster description="AI Research Cluster"
sacctmgr add user alice account=ai_cluster fairshare=50
sacctmgr add user bob account=ai_cluster fairshare=50
위 예시에서는 동일한 그룹에 속한 사용자 간 자원 사용이 공정하게 배분되도록 설정합니다.
Multi-QoS와 Fairshare의 결합
단일 정책만으로는 멀티유저 환경을 제어하기 어렵기 때문에, QoS와 Fairshare를 함께 설계합니다. 예를 들어 다음과 같은 전략이 가능합니다.
- 연구 Job vs 프로덕션 Job 분리
- 연구 Job: 긴 실행 시간 허용, 낮은 우선순위
- 프로덕션 Job: 짧은 응답 시간 보장, 높은 우선순위
- 팀별 자원 보장
- Fairshare를 활용해 팀별 장기 균형 유지
- QoS로 팀별 단기 자원 상한 설정
- 긴급 Job 처리
- 긴급 분석 Job에 높은 QoS 우선순위 부여
- 필요 시 Preemption 정책으로 다른 Job을 중단하고 실행
실제 적용 사례
- 대학 HPC 센터: 연구팀별 Fairshare를 설정하여 자원 사용을 균형 있게 배분하면서, 과제 제출 마감일에는 특정 QoS로 학생 Job을 빠르게 처리하도록 구성합니다.
- AI 서비스 기업: 프로덕션 환경 추론 Job은 높은 QoS와 Preemption 권한을 부여하고, 연구용 학습 Job은 Fairshare 기반으로 운영하여 서비스 안정성과 연구 활동을 동시에 보장합니다.
- 제조 기업 HPC: 부서별로 Fairshare 비율을 설정하고, 주기적인 대시보드 공유를 통해 자원 사용의 투명성을 확보합니다.
장점과 단점
장점
- 사용자 그룹 간 자원 경쟁을 완화합니다.
- 장기적으로 자원 사용 균형을 보장합니다.
- 긴급 Job, 연구 Job 등 다양한 요구사항을 동시에 충족할 수 있습니다.
단점
- 정책 설계와 관리가 복잡해집니다.
- 사용자가 정책을 이해하지 못하면 불만이 생길 수 있습니다.
- Preemption이 자주 발생하면 사용자 경험이 악화될 수 있습니다.
실무 팁과 주의사항
- 정책 투명성 확보
- 사용자에게 QoS와 Fairshare 정책을 문서화하여 안내해야 합니다. 불투명하면 불만이 커집니다.
- Preemption 최소화
- Preemption은 긴급 상황에서만 사용하고, 평소에는 QoS+Fairshare로 공정성을 유지하는 것이 좋습니다.
- 모니터링과 피드백 루프
- Slurm의 sreport와 Grafana를 통해 자원 사용량을 정기적으로 공유하면 정책 신뢰도를 높일 수 있습니다.
- 하이브리드 전략 활용
- QoS로 단기 자원 점유를 제어하고, Fairshare로 장기 균형을 맞추는 것이 이상적입니다.
정리하며
Multi-QoS와 Fairshare 복합 정책은 멀티유저 환경에서 자원 경쟁을 완화하고, 클러스터의 공정성과 효율성을 동시에 확보하는 핵심 전략입니다. 운영자는 사용자 요구와 조직 목표를 반영해 QoS와 Fairshare를 조합하고, 모니터링 및 피드백을 통해 지속적으로 정책을 조정해야 합니다. 이를 통해 클러스터 운영 안정성과 사용자 만족도를 모두 달성할 수 있습니다.