
GPUManager 소개
GPU 서버 상태를 슬랙으로 편하게 받아볼 수 있는 서비스
여러 서버를 함께 쓰다 보면
지금 어떤 GPU가 비어 있는지,
내가 돌린 작업이 아직 살아 있는지,
어느 GPU에서 돌아가고 있는지 궁금할 때가 자주 있는데요.
그럴 때마다 서버에 직접 들어가서 nvidia-smi를 쳐 보고,
또 다른 서버에 들어가서 다시 확인하고,
이걸 여러 번 반복하다 보면 생각보다 꽤 번거롭습니다.
특히 연구실 서버처럼 여러 사람이 함께 쓰는 환경에서는
“지금 어디가 비어 있지?”
“작업이 죽은 건가?”
“GPU 사용률이 왜 이렇게 높지?”
이런 걸 빠르게 확인해야 할 때가 많은데요.
이럴 때 꽤 유용하게 쓸 수 있는 서비스가 있어서 소개해보려고 합니다.
바로 pip으로 설치해서 사용할 수 있는 gpumanager 입니다.
- PyPI 주소 : https://pypi.org/project/gpumanager/
- 사용 가이드 : https://happilee12.github.io/gpu-util-webhook/#quick-start
복잡한 모니터링 시스템을 따로 구성하지 않아도
GPU 상태를 주기적으로 수집해서 슬랙으로 보내주기 때문에
가볍게 붙여서 쓰기 좋습니다.
GPUManager가 필요한 상황
이런 경우 한 번쯤 있으셨을 것 같아요.
- 여러 서버를 동시에 쓰는데 지금 어떤 GPU가 비어 있는지 확인하고 싶을 때
- 내가 실행한 작업이 아직 잘 돌아가는지 궁금할 때
- 특정 GPU가 계속 잡혀 있는데 실제로 누가 쓰고 있는지 보고 싶을 때
- 슬랙으로 간단하게 상태를 받아보고 싶을 때
특히 서버를 매번 직접 들어가서 확인하지 않고
슬랙에서 바로 상태를 볼 수 있다는 점이 꽤 편합니다.
GPUManager 사용방법
1. Slack Incoming Webhook 설정
먼저 Slack에서 Incoming Webhook을 설정해줍니다.
- Slack 앱 관리에서 Incoming Webhooks 기능 켜기
- 메시지를 받을 채널 선택
- 생성된 Webhook URL 복사
처음 한 번만 설정해두면 됩니다.
2. gpumanager 설치
설치는 간단합니다.
또는 pipx를 사용하셔도 됩니다.
CLI 앱처럼 쓰는 도구라서 pipx로 설치하는 것도 꽤 깔끔합니다.
3. 초기 설정
설치 후에는 아래 명령어로 기본 설정 파일을 생성합니다.
gpumanager init 을 실행하면 서버 이름, Slack webhook URL, gpu util 저장주기, 리포트 전송주기 등을 설정합니다.
gpumanager install-systemd는 이걸 주기적으로 자동실행하도록 설정하기 위해 필요한 명령어에요

4. 테스트
설정을 마친 뒤에는 테스트 전송을 해보면 됩니다.
슬랙 메시지가 정상적으로 도착하면 설정이 잘 된 것입니다.
만약 여기서는 메시지 전달이 잘 되는데 지정한 시간에 오지 않는다면 gpumanager install-systemd 를 실행하지 않으신거일수 있는데요, 이럴때는 gpumanager config 를 통해서 sampler_timer_installed, report_timer_installed 가 잘 설정된 것인지 확인해보면 됩니다.

원하는 시간 구간 기준으로 집계
예를 들면
- 5분
- 10분
- 1시간
- 하루
이런 식으로 window를 잡아서
평균 GPU 활용률이나 최대 활용률을 계산할 수 있습니다.
짧게 잡으면 거의 실시간 모니터링처럼 쓸 수 있고,
길게 잡으면 하루 요약 리포트처럼 활용할 수 있습니다.
매번 SSH 접속해서 확인하지 않아도 되는 게 생각보다 정말 편합니다.
어떤 식으로 활용하면 좋을까?
10분 주기 보고
서버 상태를 거의 실시간처럼 보고 싶을 때 좋습니다.
작업을 막 시작했거나
GPU 사용 상태를 수시로 봐야 할 때 유용합니다.
하루 1회 보고
운영 요약 리포트처럼 쓰기 좋습니다.
하루 동안 GPU가 얼마나 사용됐는지,
유휴 상태였는지,
특정 GPU만 과하게 사용되고 있지는 않은지
가볍게 확인할 수 있습니다.
실제로는
10분 주기 보고는 실시간 모니터링 느낌,
하루 1회 보고는 운영 로그 느낌으로 사용하면 가장 무난할 것 같습니다.
마무리
gpumanager는
복잡한 GPU 모니터링 시스템을 크게 구성하지 않아도
GPU 상태를 비교적 간단하게 감시하고
Slack으로 자동 보고받을 수 있게 해주는 도구입니다.
특히
- 매번 서버에 들어가서 확인하는 번거로움을 줄이고 싶을 때
- GPU 사용 상태를 슬랙으로 빠르게 받아보고 싶을 때
- 여러 서버를 함께 관리하고 있을 때
가볍게 붙여서 쓰기 좋습니다.
설정만 해두면
실시간에 가까운 모니터링도 가능하고,
하루 단위 운영 리포트처럼도 활용할 수 있어서
생각보다 활용도가 높아 보입니다.
GPU 서버를 자주 쓰는 환경이라면
한 번쯤 써볼 만한 서비스인 것 같습니다.
- PyPI 주소 : https://pypi.org/project/gpumanager/
- 사용 가이드 : https://happilee12.github.io/gpu-util-webhook/#quick-start
그럼 다음에도 더 유용한 서비스 소개로 돌아오겠습니다.
'개발 > Linux' 카테고리의 다른 글
| tmux : centos에서 화면 분할하기 - 설치, 사용, pane/session/window (0) | 2021.08.04 |
|---|