전공영역 공부 기록

nvidia-smi 명령어로 nvidia GPU 상태 모니터링

악분 2025. 6. 19. 00:48
반응형

들어가며

쿠버네티스에서 GPU 워크로드를 운영하기 위해서는 pod레벨에서 GPU상태를 확인하는 것도 중요하지만 인스턴스(노드)레벨에서 GPU정보를 확인하는것도 필요하다고 생각합니다.

 

따라서, 이 글은 노드레벨에서 nvidia GPU상태를 확인하는 방법을 설명합니다.

 

실습환경

실습환경은 AWS EC2 인스턴스를 사용했고 g6.xlarge를 사용했습니다.

 

GPU 상태 확인

nvidia GPU드라이버를 설치하면 nvidia-smi명령어를 사용할 수 있습니다. nvidia-smi 명령어를 사용하면 nvidia GPU 현재 상태를 확인합니다.

nvidia-smi

 

 

GPU 상태 필터링

query-gpu 인자를 사용하면 특정 상태를 필터링 하여 조회합니다. 아래는 GPU driver version을 조회한 결과입니다.

nvidia-smi --query-gpu=driver_version --format=csv,noheader,nounits

 

 

GPU 상태는 --help-query-gpu로 조회합니다.

nvidia-smi --help-query-gpu 

 

 

자주 사용하는 GPU 상태 필터입니다.

# NVIDIA 드라이버 버전 확인
nvidia-smi --query-gpu=driver_version --format=csv,noheader,nounits

# GPU 상태 확인 (정상: P0, 유휴: P8)
nvidia-smi --query-gpu=pstate --format=csv,noheader,nounits

# ECC 오류 확인
nvidia-smi --query-gpu=ecc.errors.corrected.total,ecc.errors.uncorrected.total --format=csv

GPU 상세 정보확인

GPU 상세정보는 nvidia-smi -i로 확인할 수 있습니다.

nvidia-smi -i 0 -q

 

 

GPU 특정 정보만 확인하려면 -d {필드이름}으로 필터링 합니다.

#메모리 정보 
nvidia-smi -i 0 -q -d MEMORY

 

실시간 상태 트레이싱

tail {파일경로}처럼 nvidia-smi를 실시간으로 추적하려면 nvidia-smi -l을 사용합니다.

# 1초마다 GPU 상태 트레이싱
nvidia-smi -l 1

 

 

또는 nvidia-smi dmon를 사용하면 됩니다. dmon는 1초마다 GPU 상태를 추적합니다.

nvidia-smi dmon

 

 

특정 상태만 실시간 트레이싱

특정 상태만 실시간 트레이싱하려면 --query-gpu와 -l 인자를 사용합니다.

nvidia-smi --query-gpu={query1,query2} \
    --format=csv,noheader,nounits \
    -l 1

 

아래는 GPU 사용률, 메모리 사용률, 온도 모니터링를 필터링하여 1초마다 트레이싱한 예제입니다.

nvidia-smi --query-gpu=memory.total,memory.free,memory.used \
    --format=csv,noheader,nounits

 

 

GPU를 사용하는 프로세스 조회

nvidia-smi pmon
반응형