我有一台(非常旧的)计算机(配有华硕 A8N-SLI DELUXE 主板和 AMD Opteron(tm) 处理器 180),我用 munin 进行监控,并且Vcore Voltage
读取的值lm-sensors
始终处于某种Critical
状态,因为输入电压始终低于最小阈值。多年来我从来没有太烦恼过,但今天我试图纠正这个误报。但是,经过几个小时的故障排除后,我无法解决该问题,因为我无法更改只读的最小/最大阈值。
以下是我迄今为止的发现:
由于输入 Vcore 电压值超出最小/最大值,因此出现临界状态。
Asensors -u
报告如下:
...
atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage:
in0_input: 1.104
in0_min: 1.450
in0_max: 1.750
...
如您所见,in0_min
is1.45V
但in0_input
小于 min 1.104V
。
阅读 lm-sensors 配置文件的文档后(https://linux.die.net/man/5/sensors.conf)我发现我可以通过一些正确的配置来纠正最小/最大值。所以我创建了一个/etc/sensors.d/atk0110.conf
包含以下内容的文件:
chip "atk0110-*"
label in0 "Vcore Voltage"
set in0_min 1.05
然后我执行sensors -s
(阅读手册页中的部分Set Statement
以获取更多信息)以使设置生效并繁荣!我收到以下错误:
Error: File /etc/sensors.d/atk0110.conf, line 5: Failed to set value
atk0110-acpi-0: At least one "set" statement failed
经过一番谷歌搜索后,我发现发生此错误是因为这些值在 BIOS 中硬编码且无法更改。一旦加载模块,它们就会通过 sysfs 文件系统暴露给内核asus_atk0110
,并从路径中读取值/sys/bus/acpi/drivers/ATK0110/ATK0110:00/hwmon/hwmon1/
。特别是in0_min
从该文件读取值:/sys/bus/acpi/drivers/ATK0110/ATK0110:00/hwmon/hwmon1/in0_min
。
我的第二次尝试是尝试尝试compute
传感器配置文件中的语句,但我很快发现我不能只是计算最小/最大。当使用sensors.conf 文件中的compute 语句时,输入的所有子功能都会受到计算的影响。从sensors.conf手册页:
A compute statement describes how a feature's raw value should be translated to a real-world value, and how a real-world value should be translated back to a raw value again. This is most useful for voltage sensors, because in general sensor chips have a limited range and voltages outside this range must be divided (using resistors) before they can be monitored...
...
...
A compute statement applies to all sub-features of the target feature for which it makes sense.
...
这意味着在我的例子中,所有三个值 , ,in0_input
都会受到影响。所以如果我在配置中使用类似的东西:in0_min
in0_max
chip "atk0110-*"
label in0 "Vcore Voltage"
compute in0 @-0.4,@
我最终读到的是:
atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage:
in0_input: 0.992
in0_min: 1.050
in0_max: 1.350
正如您所看到的,所有值都减少了 0.4 伏,因此输入值再次低于最小值,并且批判的穆宁地位依然存在。
有没有什么办法可以软调仅有的流明传感器中的最小/最大值(如果这些值是只读的)?
另一种选择是如果可能的话尝试从 munin 方面解决问题,但在这种情况下问题的根源是 lm 传感器,所以我相信这就是应该解决问题的地方。
答案1
这个答案通过更改 munin 使用的警告/严重阈值解决了 munin 方面的问题。所以虽然我的问题解决了,但我不会将答案标记为解决方案。理想情况下,问题应该围绕流明传感器来解决。
进入使用该插件的节点sensors_volt
并执行命令munin-run sensors_volt config
。该命令将返回 munin 识别的键/值列表:
# munin-run sensors_volt config
graph_title Voltages
graph_vlabel Volt
graph_args --base 1000 --logarithmic
graph_category sensors
volt1.label Vcore Voltage
volt1.warning 1.51:1.69
volt1.critical 1.45:1.75
volt2.label +3.3 Voltage
volt2.warning 3.12:3.48
volt2.critical 3.00:3.60
volt3.label +5.0 Voltage
volt3.warning 4.70:5.30
volt3.critical 4.50:5.50
volt4.label +12.0 Voltage
volt4.warning 11.60:12.80
volt4.critical 11.20:13.20
munin.conf
这些键/值可以在您的主节点中更改。
就我而言,我想更改volt1.warning
和volt1.critical
值,因此在定义主机的部分中我添加了以下行:
[host.localdomain]
address 1.2.3.4
use_node_name yes
sensors_volt.volt1.warning 1.05:1.40
sensors_volt.volt1.critical 1.00:1.45
因此,现在最小/最大警告值已设置为 1.05V/1.40V,临界值已设置为 1V/1.45V。
答案2
如果您的系统没有过压或欠压,您可能会考虑忽略核心电压:
chip "atk0110-*"
ignore in0
答案3
您必须是 root 才能执行 set 命令,因此您需要使用sudo sensors -s
,然后它应该更改限制。当您再次运行传感器时,限制现在应该是您设置的。