Enforce that full cooling arrives no later than the disk alarm
DISK_RAMP_HIGH_OFFSET below DISK_ALARM_OFFSET means the alarm fires while there is still cooling left unused. iz-pve0 was tuned that way by hand (full at limit-2, alarm at limit-5), which would have mailed 3c before the fans were actually flat out, for every drive class. check_ramp_ordering() now clamps at startup and logs it, rather than exiting - a fan controller that refuses to start leaves the fans wherever they were. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -117,6 +117,11 @@ selftest() {
|
||||
# leak is what let the setpoint drift 32 -> 36 -> 31 on iz-pve0.
|
||||
check "re-assert re-pushes held value" 32 "$(next_fan_speed 34 32)"
|
||||
|
||||
echo "ramp/alarm ordering (full cooling must arrive no later than the alarm):"
|
||||
ramp_ordering_ok 8 5 && check "full at limit-8, alarm at limit-5" ok ok || check "full at limit-8, alarm at limit-5" ok bad
|
||||
ramp_ordering_ok 5 5 && check "full and alarm coincide" ok ok || check "full and alarm coincide" ok bad
|
||||
ramp_ordering_ok 2 5 && check "full at limit-2 is rejected" bad ok || check "full at limit-2 is rejected" bad bad
|
||||
|
||||
echo "alert rate limiting:"
|
||||
local out
|
||||
out=$( { raise_alert testkey "first" "body"; raise_alert testkey "second" "body"; } | grep -c '^MAIL\[' )
|
||||
@@ -210,6 +215,7 @@ fi
|
||||
#######################################
|
||||
# Read every drive's own temperature limit once - they do not change, and
|
||||
# smartctl -x is far heavier than the -A used on the fast loop.
|
||||
check_ramp_ordering
|
||||
cache_disk_limits
|
||||
echo "Monitoring $DISK_COUNT_EXPECTED disk(s)."
|
||||
LAST_SMART_CHECK=0
|
||||
|
||||
Reference in New Issue
Block a user