文档文档

Nvidia 系统管理接口 (SMI) 输入插件

此插件使用 NVIDIA 系统管理接口,收集有关 NVIDIA GPU 的指标,包括内存和 GPU 使用率、温度等。

此插件需要在系统上安装 nvidia-smi 二进制文件。

已引入版本: Telegraf v1.7.0 标签: system, hardware 操作系统支持: all

全局配置选项

插件支持其他全局和插件配置设置,用于修改指标、标签和字段,创建别名以及配置插件顺序等任务。更多详情请参阅 CONFIGURATION.md

启动错误行为选项

除了插件特定的和全局的配置设置外,该插件还支持使用 startup_error_behavior 设置来指定出现启动错误时的行为。可用值如下:

  • error:如果出现启动错误,Telegraf 将停止并退出。这是默认行为。
  • ignore:Telegraf 将忽略此插件的启动错误,并禁用它,但会继续处理所有其他插件。
  • retry: 不可用
  • probe: Telegraf 将调用 Probe() error 方法(如果可用)。如果该方法返回错误,Telegraf 将禁用该插件,但会继续处理所有其他插件。

配置

# Pulls statistics from nvidia GPUs attached to the host
[[inputs.nvidia_smi]]
  ## Optional: path to nvidia-smi binary, defaults "/usr/bin/nvidia-smi"
  ## We will first try to locate the nvidia-smi binary with the explicitly specified value (or default value),
  ## if it is not found, we will try to locate it on PATH(exec.LookPath), if it is still not found, an error will be returned
  # bin_path = "/usr/bin/nvidia-smi"

  ## Optional: timeout for GPU polling
  # timeout = "5s"

Linux

在 Linux 上,nvidia-smi 通常位于 /usr/bin/nvidia-smi

Windows

在 Windows 上,nvidia-smi 通常位于 C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe。在 Windows 10 上,您可能也会在此处找到它:C:\Windows\System32\nvidia-smi.exe

您需要在 telegraf.conf 中像这样转义 \C:\\Program Files\\NVIDIA Corporation\\NVSMI\\nvidia-smi.exe

故障排除

通过手动运行 nvidia-smi 二进制文件来检查完整输出。

Linux

sudo -u telegraf -- /usr/bin/nvidia-smi -q -x

Windows

"C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" -q -x

如果打开 GitHub issue,请包含此命令的输出。

Metrics

  • measurement: nvidia_smi
    • 标签 (tags)
      • name (GPU 类型,例如 GeForce GTX 1070 Ti)
      • compute_mode (GPU 的计算模式,例如 Default)
      • index (GPU 连接到主板的端口索引,例如 1)
      • pstate (GPU 的超频状态,例如 P0)
      • uuid (GPU 的唯一标识符,例如 GPU-f9ba66fc-a7f5-94c5-da19-019ef2f9c665)
    • 字段 (fields)
      • fan_speed (整数,百分比)
      • fbc_stats_session_count (整数)
      • fbc_stats_average_fps (整数)
      • fbc_stats_average_latency (整数)
      • memory_free (整数,MiB)
      • memory_used (整数,MiB)
      • memory_total (整数,MiB)
      • memory_reserved (整数,MiB)
      • retired_pages_multiple_single_bit (整数)
      • retired_pages_double_bit (整数)
      • retired_pages_blacklist (字符串)
      • retired_pages_pending (字符串)
      • remapped_rows_correctable (int)
      • remapped_rows_uncorrectable (int)
      • remapped_rows_pending (字符串)
      • remapped_rows_pending (字符串)
      • remapped_rows_failure (字符串)
      • power_draw (浮点数,W)
      • temperature_gpu (整数,摄氏度)
      • utilization_gpu (整数,百分比)
      • utilization_memory (整数,百分比)
      • utilization_encoder (整数,百分比)
      • utilization_decoder (整数,百分比)
      • pcie_link_gen_current (整数)
      • pcie_link_width_current (整数)
      • encoder_stats_session_count (整数)
      • encoder_stats_average_fps (整数)
      • encoder_stats_average_latency (整数)
      • clocks_current_graphics (整数,MHz)
      • clocks_current_sm (整数,MHz)
      • clocks_current_memory (整数,MHz)
      • clocks_current_video (整数,MHz)
      • driver_version (字符串)
      • cuda_version (字符串)

示例输出

nvidia_smi,compute_mode=Default,host=8218cf,index=0,name=GeForce\ GTX\ 1070,pstate=P2,uuid=GPU-823bc202-6279-6f2c-d729-868a30f14d96 fan_speed=100i,memory_free=7563i,memory_total=8112i,memory_used=549i,temperature_gpu=53i,utilization_gpu=100i,utilization_memory=90i 1523991122000000000
nvidia_smi,compute_mode=Default,host=8218cf,index=1,name=GeForce\ GTX\ 1080,pstate=P2,uuid=GPU-f9ba66fc-a7f5-94c5-da19-019ef2f9c665 fan_speed=100i,memory_free=7557i,memory_total=8114i,memory_used=557i,temperature_gpu=50i,utilization_gpu=100i,utilization_memory=85i 1523991122000000000
nvidia_smi,compute_mode=Default,host=8218cf,index=2,name=GeForce\ GTX\ 1080,pstate=P2,uuid=GPU-d4cfc28d-0481-8d07-b81a-ddfc63d74adf fan_speed=100i,memory_free=7557i,memory_total=8114i,memory_used=557i,temperature_gpu=58i,utilization_gpu=100i,utilization_memory=86i 1523991122000000000

局限性

请注意,当内存超频时,获取当前内存时钟值似乎存在一个问题。这可能适用于某些用户,但在 EVGA 2080 Ti 上已确认存在此问题。

注意: 用于 Docker 时,您可以生成自己的自定义 Docker 镜像(基于 nvidia/cuda 并安装 telegraf 包),或者使用 volume mount binding 将所需的二进制文件注入到 Docker 容器中。具体来说,您需要传递 /dev/nvidia* 设备、nvidia-smi 二进制文件和 nvidia 库。以下是一个最小的 docker-compose 示例:

  telegraf:
    image: telegraf
    runtime: nvidia
    devices:
      - /dev/nvidiactl:/dev/nvidiactl
      - /dev/nvidia0:/dev/nvidia0
    volumes:
      - ./telegraf/etc/telegraf.conf:/etc/telegraf/telegraf.conf:ro
      - /usr/bin/nvidia-smi:/usr/bin/nvidia-smi:ro
      - /usr/lib/x86_64-linux-gnu/nvidia:/usr/lib/x86_64-linux-gnu/nvidia:ro
    environment:
      - LD_PRELOAD=/usr/lib/x86_64-linux-gnu/nvidia/current/libnvidia-ml.so

此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2