监控NVMe驱动器的温度/IO

监控NVMe驱动器的温度/IO

有没有办法监控 NVMe 驱动器的温度或读/写(在本例中为 Intel 750)。hdparm、、、、udisksctl似乎smartctlhddtemp缺乏这个能力,google搜索一直无果。

出于好奇,这是我在使用 NVMe 作为系统驱动器运行 Fedora 23(工作站)时遇到的唯一困难。

答案1

使用 nvme-cli,我可以使用以下命令从 Samsung 950 Pro 获取温度:

nvme smart-log /dev/nvme0 | grep "^temperature"

您还可以获取其他信息:

nvme smart-log /dev/nvme0

Smart Log for NVME device:nvme0 namespace-id:ffffffff
critical_warning                    : 0
temperature                         : 45 C
available_spare                     : 100%
available_spare_threshold           : 10%
percentage_used                     : 0%
data_units_read                     : 3,020,387
data_units_written                  : 2,330,810
host_read_commands                  : 26,960,077
host_write_commands                 : 15,668,236
controller_busy_time                : 65
power_cycles                        : 98
power_on_hours                      : 281
unsafe_shutdowns                    : 68
media_errors                        : 0
num_err_log_entries                 : 63
Warning Temperature Time            : 0
Critical Composite Temperature Time : 0

注意:使用内核4.6.4

对于用户访问:

/etc/sudoers

# For users group
%users ALL = NOPASSWD: nvme smart-log /dev/nvme0 | grep "^temperature"

# For all
ALL ALL = NOPASSWD: nvme smart-log /dev/nvme0 | grep "^temperature"

答案2

内核 5.5 及更高版本,普通用户可以通过 sysfs 获取温度信息。例如,在我的系统上:

/sys/class/nvme/nvme0/device/hwmon/hwmon1/name:nvme
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp1_alarm:0
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp1_crit:84850
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp1_input:50850
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp1_label:Composite
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp1_max:84850
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp1_min:-273150
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp2_input:50850
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp2_label:Sensor 1
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp2_max:65261850
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp2_min:-273150
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp3_input:62850
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp3_label:Sensor 2
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp3_max:65261850
/sys/class/nvme/nvme0/device/hwmon/hwmon1/temp3_min:-273150

不同的温度都在*_input文件中。值为 T(℃) * 1000。例如,传感器 1 的温度为 ~51℃。

答案3

您可以采取以下一些步骤。确保您的 Linux 内核版本至少为 3.19,并且安装了 Intel Linux NVMe 驱动程序。如果这没有帮助,请考虑安装Linux NVMe 命令行界面

答案4

这对我有用,您可能需要在中找到适合您的系统的hwmon内容temp/sys/devices/*

使用conky

${hwmon 2 temp 1}°C

相关内容