HPC & GPU Engineering/AI Infrastructure Engineer

[HPC/GPU 클러스터 운영 Zero to Hero 12편] Bash 스크립트로 HPC 운영 자동화 – GPU Health Check 예제 포함

ygtoken 2025. 8. 9. 17:29
728x90

 

왜 Bash 스크립트 자동화가 중요한가

 

HPC(High-Performance Computing)와 GPU 클러스터 운영 환경에서는 매일 반복되는 점검 작업이 많습니다.

대표적으로 GPU 상태 확인, 노드 부하 측정, 스토리지 사용량 점검, 네트워크 연결 확인 등이 있습니다.

이 작업들을 매번 수동으로 실행하면 운영자가 소모하는 시간이 상당히 크고, 사람이 직접 수행할 경우 누락이나 실수가 발생할 수 있습니다.

 

Bash 스크립트를 사용하면 다음과 같은 이점이 있습니다.

 

  • 주기적인 점검 작업 자동화
  • 결과를 파일·이메일·Slack 등으로 자동 보고
  • 긴급 상태(예: GPU 과열, 메모리 부족) 시 알람 발송
  • 표준화된 점검 절차로 인력 교체 시 운영 연속성 보장

 


 

Bash 스크립트 자동화 적용 범위

작업 영역 자동화 가능 예시
GPU 상태 점검 nvidia-smi 출력 파싱, GPU 온도·메모리 사용량 수집
CPU/메모리 상태 top / free 결과를 주기적으로 저장
스토리지 사용량 df, du로 사용량 체크 후 임계치 초과 시 알람
네트워크 상태 ping, iperf3로 지연·대역폭 측정
Slurm Job 상태 squeue로 Pending/Failed Job 추적

 


 

GPU Health Check 스크립트 예제

#!/bin/bash
# gpu_health_check.sh – HPC GPU 상태 점검 스크립트

LOG_DIR="/var/log/hpc_health"
LOG_FILE="$LOG_DIR/gpu_health_$(date +%Y%m%d).log"
THRESHOLD_TEMP=80
THRESHOLD_MEM=90

mkdir -p $LOG_DIR

echo "==== GPU Health Check $(date) ====" >> $LOG_FILE

# GPU 상태 수집
nvidia-smi --query-gpu=index,name,temperature.gpu,utilization.gpu,memory.used,memory.total --format=csv,noheader,nounits | while IFS=',' read -r id name temp util mem_used mem_total
do
    mem_usage=$((mem_used * 100 / mem_total))
    status="OK"
    if [ "$temp" -ge "$THRESHOLD_TEMP" ]; then
        status="OVERHEAT"
    fi
    if [ "$mem_usage" -ge "$THRESHOLD_MEM" ]; then
        status="MEMORY_HIGH"
    fi

    echo "GPU$id ($name): Temp=${temp}°C, Util=${util}%, Mem=${mem_usage}% - Status=$status" >> $LOG_FILE
done

echo "Log saved to $LOG_FILE"

 

실무 활용 팁

 

  • cron에 등록해 5분~10분 간격으로 실행
  • Slack Webhook과 연동해 알람 발송
  • Slurm Job ID와 GPU 상태를 매칭해 문제 Job 추적 가능

 


 

자동화 시 고려해야 할 사항

 

  1. 환경 차이 반영
    • GPU 모델(H100, A100 등)에 따라 nvidia-smi 출력 포맷이 달라질 수 있음
    • 노드별 환경 변수와 PATH 설정 차이 주의
  2. 로그 관리
    • 장기간 로그 보관 시 디스크 용량 증가 → 주기적 압축/삭제 필요
    • 장애 발생 시 로그를 기반으로 재현 가능해야 함
  3. 보안
    • 스크립트에서 외부 알림 전송 시 인증키·토큰은 환경변수 또는 별도 파일로 관리
    • 운영 계정의 권한 최소화
  4. 성능 영향
    • 너무 짧은 주기로 실행하면 오히려 CPU 부하 증가
    • nvidia-smi 호출 빈도는 GPU 워크로드에 맞게 조정

 


 

Bash 자동화 vs Ansible 자동화

비교 항목 Bash Ansible
장점 단순, 빠른 개발 멀티 노드 대규모 배포·관리
단점 멀티 노드 동시 실행 불편 초기 설정 복잡
추천 용도 단일 노드 점검, 빠른 프로토타입 클러스터 전체 자동화 운영

 


 

산업별 적용 사례

  • AI 연구소: GPU Health Check 스크립트를 크론잡으로 실행해 온도·메모리 상태를 24/7 모니터링
  • 반도체 시뮬레이션 센터: Slurm Job과 GPU 상태를 매핑해 자원 누수 Job 자동 종료
  • 대학 슈퍼컴센터: 200여 개 노드의 GPU 상태를 하루 4회 수집해 성능 추세 분석

 


 

장점과 단점

 

장점

  • 운영자 개입 최소화
  • 장애 사전 탐지 가능
  • 표준화된 데이터 수집으로 분석 용이

 

단점

  • 멀티 노드 환경에서는 확장성 한계
  • 스크립트 자체의 버그가 장애 원인이 될 수 있음

 


 

정리하며

 

Bash 스크립트는 HPC 운영에서 가장 빠르게 자동화를 시작할 수 있는 도구입니다.

특히 GPU Health Check는 안정적 클러스터 운영의 기초이며, 여기서 수집한 데이터는 추후 **모니터링 시스템(Prometheus, Grafana)**과 연계해 더 강력한 운영 체계를 구축할 수 있습니다.

 

728x90