Skip to content

Nvidia-smi-exporter

Nvidia-smi Prometheus exporter with respecting of GPU-UUID

수집 메트릭 카테고리

시스템 및 GPU 기본 정보

  • nvidia_smi_attached_gpus - 연결된 GPU 개수
  • nvidia_smi_display_mode - 디스플레이 모드 상태 (0=Disabled, 1=Enabled)
  • nvidia_smi_display_active - 디스플레이 활성 상태 (0=Not Active, 1=Active)
  • nvidia_smi_persistence_mode - 퍼시스턴스 모드 상태 (0=Disabled, 1=Enabled)
  • nvidia_smi_minor_number - GPU 마이너 디바이스 번호
  • nvidia_smi_multigpu_board - 멀티 GPU 보드 여부 (0=No, 1=Yes)

어카운팅 정보

  • nvidia_smi_accounting_mode - 어카운팅 모드 상태 (0=Disabled, 1=Enabled)
  • nvidia_smi_accounting_mode_buffer_size - 어카운팅 모드 버퍼 크기

InfoROM 정보

  • nvidia_smi_inforom_version_oem_object - OEM 객체 InfoROM 버전

PCI 정보

  • nvidia_smi_pci_pci_sub_system_id - PCI 서브시스템 ID
  • nvidia_smi_pci_pci_gpu_link_info_pcie_gen_max_link_gen - PCIe 최대 세대
  • nvidia_smi_pci_pci_gpu_link_info_pcie_gen_current_link_gen - PCIe 현재 세대
  • nvidia_smi_pci_pci_gpu_link_info_link_widths_max_link_width - PCIe 최대 링크 폭 (1x, 2x, 4x, 8x, 16x, 32x)
  • nvidia_smi_pci_pci_gpu_link_info_link_widths_current_link_width - PCIe 현재 링크 폭
  • nvidia_smi_pci_replay_counter - PCI 리플레이 카운터
  • nvidia_smi_pci_replay_rollover_counter - PCI 리플레이 롤오버 카운터
  • nvidia_smi_pci_tx_util_bytes_per_second - PCI TX 대역폭 사용량 (바이트/초)
  • nvidia_smi_pci_rx_util_bytes_per_second - PCI RX 대역폭 사용량 (바이트/초)

팬 및 성능 상태

  • nvidia_smi_fan_speed_ratio - 팬 속도 비율 (0.0~1.0)
  • nvidia_smi_performance_state - 성능 상태 (P0P15, 015로 변환)

클럭 스로틀링 정보

  • nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_gpu_idle - GPU 유휴 상태로 인한 스로틀링
  • nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_applications_clocks_setting - 애플리케이션 클럭 설정으로 인한 스로틀링
  • nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_sw_power_cap - 소프트웨어 전력 제한으로 인한 스로틀링
  • nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_hw_slowdown - 하드웨어 슬로우다운
  • nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_hw_thermal_slowdown - 하드웨어 열 슬로우다운
  • nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_hw_power_brake_slowdown - 하드웨어 전력 브레이크 슬로우다운
  • nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_sync_boost - 동기화 부스트
  • nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_sw_thermal_slowdown - 소프트웨어 열 슬로우다운
  • nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_display_clocks_setting - 디스플레이 클럭 설정

메모리 사용량

  • nvidia_smi_fb_memory_usage_total_bytes - 프레임버퍼 총 메모리 (바이트)
  • nvidia_smi_fb_memory_usage_used_bytes - 프레임버퍼 사용 중인 메모리 (바이트)
  • nvidia_smi_fb_memory_usage_free_bytes - 프레임버퍼 사용 가능한 메모리 (바이트)
  • nvidia_smi_bar1_memory_usage_total_bytes - BAR1 총 메모리 (바이트)
  • nvidia_smi_bar1_memory_usage_used_bytes - BAR1 사용 중인 메모리 (바이트)
  • nvidia_smi_bar1_memory_usage_free_bytes - BAR1 사용 가능한 메모리 (바이트)

컴퓨트 모드

  • nvidia_smi_compute_mode - 컴퓨트 모드 (0=Default, 1=Exclusive_Thread, 2=Prohibited, 3=Exclusive_Process)

활용률 (Utilization)

  • nvidia_smi_utilization_gpu_util_ratio - GPU 코어 활용률 비율 (0.0~1.0)
  • nvidia_smi_utilization_memory_util_ratio - 메모리 활용률 비율 (0.0~1.0)
  • nvidia_smi_utilization_encoder_util_ratio - 인코더 활용률 비율 (0.0~1.0)
  • nvidia_smi_utilization_decoder_util_ratio - 디코더 활용률 비율 (0.0~1.0)

인코더 통계

  • nvidia_smi_encoder_stats_session_count - 활성 인코더 세션 수
  • nvidia_smi_encoder_stats_average_fps - 평균 인코더 FPS
  • nvidia_smi_encoder_stats_average_latency - 평균 인코더 지연시간

FBC (Frame Buffer Capture) 통계

  • nvidia_smi_fbc_stats_session_count - 활성 FBC 세션 수
  • nvidia_smi_fbc_stats_average_fps - 평균 FBC FPS
  • nvidia_smi_fbc_stats_average_latency - 평균 FBC 지연시간

온도

  • nvidia_smi_temperature_gpu_temp_celsius - GPU 현재 온도 (섭씨)
  • nvidia_smi_temperature_gpu_temp_max_threshold_celsius - GPU 최대 임계 온도 (섭씨)
  • nvidia_smi_temperature_gpu_temp_slow_threshold_celsius - GPU 슬로우다운 임계 온도 (섭씨)
  • nvidia_smi_temperature_gpu_target_temperature_celsius - GPU 목표 온도 (섭씨)
  • nvidia_smi_supported_gpu_target_temp_gpu_target_temp_min_celsius - GPU 지원하는 최소 목표 온도 (섭씨)
  • nvidia_smi_supported_gpu_target_temp_gpu_target_temp_max_celsius - GPU 지원하는 최대 목표 온도 (섭씨)

전력 정보

  • nvidia_smi_power_readings_power_state - 전력 상태 (P0~P15)
  • nvidia_smi_power_readings_power_management - 전력 관리 활성화 여부 (0=Disabled, 1=Enabled)
  • nvidia_smi_power_readings_power_draw_watts - 현재 전력 소비 (와트)
  • nvidia_smi_power_readings_power_limit_watts - 현재 전력 제한 (와트)
  • nvidia_smi_power_readings_default_power_limit_watts - 기본 전력 제한 (와트)
  • nvidia_smi_power_readings_enforced_power_limit_watts - 강제 전력 제한 (와트)
  • nvidia_smi_power_readings_min_power_limit_watts - 최소 전력 제한 (와트)
  • nvidia_smi_power_readings_max_power_limit_watts - 최대 전력 제한 (와트)

클럭 속도

  • nvidia_smi_clocks_graphics_clock_hz - 현재 그래픽 클럭 (Hz)
  • nvidia_smi_clocks_sm_clock_hz - 현재 SM(스트리밍 멀티프로세서) 클럭 (Hz)
  • nvidia_smi_clocks_mem_clock_hz - 현재 메모리 클럭 (Hz)
  • nvidia_smi_clocks_video_clock_hz - 현재 비디오 클럭 (Hz)
  • nvidia_smi_max_clocks_graphics_clock_hz - 최대 그래픽 클럭 (Hz)
  • nvidia_smi_max_clocks_sm_clock_hz - 최대 SM 클럭 (Hz)
  • nvidia_smi_max_clocks_mem_clock_hz - 최대 메모리 클럭 (Hz)
  • nvidia_smi_max_clocks_video_clock_hz - 최대 비디오 클럭 (Hz)

Memory 상세 정보

nvidia_smi_fb_memory_usage_total_bytes (Frame Buffer Memory)

  • GPU의 실제 물리적 VRAM 전체 크기
  • nvidia-smi에서 보이는 "Total" 메모리가 바로 이 값
  • 예: RTX 3090의 경우 24GB

nvidia_smi_bar1_memory_usage_total_bytes (BAR1 Memory)

  • PCIe BAR1 주소 공간의 크기
  • CPU가 GPU 메모리에 직접 접근할 수 있도록 매핑된 영역
  • FB Memory의 일부를 CPU 주소 공간에 매핑한 것
  • 일반적으로 FB Memory보다 훨씬 작음 (예: 256MB ~ 수GB)

소스코드 실행 방법

nvidia-smi 명령이 되는게 기본 전제이다.

우선, ruby 환경이 없다면:

sudo apt install rbenv
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

Ubuntu 22.04 기준으로 작성함:

## 코드 복사
git clone https://github.com/a0s/nvidia-smi-exporter
cd nvidia-smi-exporter

## 루비 환경 설정
rbenv install 2.7.1
rbenv local 2.7.1

## 버전 2.7.1 확인
ruby -v

## Bundler 설치
gem install bundler -v 2.4.22

## 종속성 설치
bundle install

## 실행
ruby ./app/application.rb

다음과 같은 로그가 출력되면 된다.

== Sinatra (v2.2.0) has taken the stage on 9454 for development with backup from Puma
Puma starting in single mode...
* Puma version: 5.6.4 (ruby 2.7.1-p83) ("Birdie's Version")
*  Min threads: 0
*  Max threads: 5
*  Environment: development
*          PID: 301532
* Listening on http://0.0.0.0:9454
Use Ctrl-C to stop

Metrics example

curl localhost:9454/metrics 결과는 다음과 같다:

nvidia_smi_attached_gpus 2
nvidia_smi_display_mode{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1
nvidia_smi_display_active{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_persistence_mode{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1
nvidia_smi_accounting_mode{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_accounting_mode_buffer_size{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 4000
nvidia_smi_minor_number{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_multigpu_board{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_inforom_version_oem_object{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1.1
nvidia_smi_pci_pci_sub_system_id{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 37021458
nvidia_smi_pci_pci_gpu_link_info_pcie_gen_max_link_gen{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 3
nvidia_smi_pci_pci_gpu_link_info_pcie_gen_current_link_gen{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 3
nvidia_smi_pci_pci_gpu_link_info_link_widths_max_link_width{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 16
nvidia_smi_pci_pci_gpu_link_info_link_widths_current_link_width{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1
nvidia_smi_pci_replay_counter{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 65535
nvidia_smi_pci_replay_rollover_counter{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_pci_tx_util_bytes_per_second{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 11264000
nvidia_smi_pci_rx_util_bytes_per_second{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 31744000
nvidia_smi_fan_speed_ratio{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0.53
nvidia_smi_performance_state{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 2
nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_gpu_idle{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_applications_clocks_setting{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_sw_power_cap{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1
nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_hw_slowdown{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_hw_thermal_slowdown{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_hw_power_brake_slowdown{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_sync_boost{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_sw_thermal_slowdown{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_clocks_throttle_reasons_clocks_throttle_reason_display_clocks_setting{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_fb_memory_usage_total_bytes{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 8510242816
nvidia_smi_fb_memory_usage_used_bytes{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 3040870400
nvidia_smi_fb_memory_usage_free_bytes{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 5469372416
nvidia_smi_bar1_memory_usage_total_bytes{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 268435456
nvidia_smi_bar1_memory_usage_used_bytes{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 5242880
nvidia_smi_bar1_memory_usage_free_bytes{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 263192576
nvidia_smi_compute_mode{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_utilization_gpu_util_ratio{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1.0
nvidia_smi_utilization_memory_util_ratio{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1.0
nvidia_smi_utilization_encoder_util_ratio{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0.0
nvidia_smi_utilization_decoder_util_ratio{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0.0
nvidia_smi_encoder_stats_session_count{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_encoder_stats_average_fps{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_encoder_stats_average_latency{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_fbc_stats_session_count{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_fbc_stats_average_fps{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_fbc_stats_average_latency{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 0
nvidia_smi_temperature_gpu_temp_celsius{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 67.0
nvidia_smi_temperature_gpu_temp_max_threshold_celsius{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 96.0
nvidia_smi_temperature_gpu_temp_slow_threshold_celsius{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 93.0
nvidia_smi_temperature_gpu_target_temperature_celsius{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 83.0
nvidia_smi_supported_gpu_target_temp_gpu_target_temp_min_celsius{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 60.0
nvidia_smi_supported_gpu_target_temp_gpu_target_temp_max_celsius{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 92.0
nvidia_smi_power_readings_power_state{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 2
nvidia_smi_power_readings_power_management{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1
nvidia_smi_power_readings_power_draw_watts{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 211.86
nvidia_smi_power_readings_power_limit_watts{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 216.0
nvidia_smi_power_readings_default_power_limit_watts{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 200.0
nvidia_smi_power_readings_enforced_power_limit_watts{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 216.0
nvidia_smi_power_readings_min_power_limit_watts{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 100.0
nvidia_smi_power_readings_max_power_limit_watts{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 216.0
nvidia_smi_clocks_graphics_clock_hz{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1784000000.0
nvidia_smi_clocks_sm_clock_hz{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1784000000.0
nvidia_smi_clocks_mem_clock_hz{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 5514000000.0
nvidia_smi_clocks_video_clock_hz{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1594000000.0
nvidia_smi_max_clocks_graphics_clock_hz{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1999000000.0
nvidia_smi_max_clocks_sm_clock_hz{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1999000000.0
nvidia_smi_max_clocks_mem_clock_hz{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 5005000000.0
nvidia_smi_max_clocks_video_clock_hz{uuid="683c6e09-3969-31a5-b7ca-cc88252b7fce"} 1708000000.0

See also

Favorite site