lm - 센서는 어떻게 최소/최대 읽기 전용 값을 올바르게 설정/계산합니까?

lm - 센서는 어떻게 최소/최대 읽기 전용 값을 올바르게 설정/계산합니까?

나는 munin으로 모니터링하는 (아주 오래된) 컴퓨터(ASUS A8N-SLI DELUXE 마더보드 및 AMD Opteron(tm) 프로세서 180 포함)를 가지고 있는데 입력 전압이 항상 최소 임계값보다 낮기 때문에 Vcore Voltage읽은 값이 lm-sensors항상 어떤 상태에 있습니다 . Critical지난 몇 년간 이 문제는 나를 크게 괴롭히지 않았지만 오늘은 이 잘못된 긍정을 바로잡으려고 노력했습니다. 그러나 몇 시간 동안 문제를 해결한 후에도 읽기 전용 최소/최대 임계값을 변경할 수 없기 때문에 문제를 해결할 수 없습니다.

지금까지 내가 찾은 내용은 다음과 같습니다.

입력 Vcore 전압 값이 최소/최대 값을 초과하기 때문에 위험 상황이 발생합니다.

A는 sensors -u다음과 같이 보고합니다.

...
atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage:
  in0_input: 1.104
  in0_min: 1.450
  in0_max: 1.750
...

보시다시피 is in0_min는 min보다 작습니다 .1.45Vin0_input1.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 파일에서 계산 문을 사용하면 입력된 모든 하위 기능이 계산의 영향을 받습니다. 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_minin0_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.4V 감소하므로 입력값은 다시 최소값 이하가 되며,비판적인무닌의 지위는 여전히 존재한다.

부드럽게 하는 방법은 없을까요?오직루멘 센서의 최소/최대 값(이 값이 읽기 전용인 경우)?

또 다른 선택지는 가능하다면 무닌 측에서 문제를 해결하려고 노력하는 것이지만, 이 경우 문제의 원인은 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

set 명령을 실행하려면 루트여야 하므로 사용 sudo sensors -s후 제한을 변경해야 합니다. 센서를 다시 실행하면 이제 설정한 제한이 적용됩니다.

관련 정보