power / knowledge

UPS가 알려주는 low battery를 믿지 않고 기준을 직접 정하기

paul 2025.10.07 158words (1m)

NUT은 기본적으로 UPS가 보내주는 LB(low battery) 신호를 보고 "이제 꺼야 한다"고 판단한다. 문제는 이 신호를 UPS가 언제 보낼지가 기종마다 다르고, 내가 원하는 시점과 맞지 않는다는 것이다.

내 기준은 10분은 버틸 수 있을 때까지 버틴다였다. 짧은 정전은 그냥 지나가는 경우가 많으니 성급하게 내리고 싶지 않았다.

ignorelb와 override

bash
[apc]
	# LB에 대해 내 마음대로 정의
	ignorelb
	override.battery.charge.low = 25
	override.battery.runtime.low = 600

ignorelb 는 값 없이 그냥 적는 플래그다. 이걸 넣으면 UPS가 보내는 LB 신호를 무시한다.

대신 아래 두 값 중 하나라도 걸리면 NUT이 스스로 LB로 판정한다.

  • battery.charge 가 25% 아래
  • battery.runtime 이 600초(10분) 아래

runtime.low 600이 실제로 쓰고 싶었던 기준이고, charge.low 25는 runtime 추정이 이상하게 나올 때를 대비한 보조 장치다.

주의할 점

ignorelb 는 원래 UPS가 LB를 잘못 보내는 기종을 위한 옵션이다. 정상적인 UPS에서 이걸 켜면 마지막 안전장치를 하나 끄는 셈이므로, override 값을 넉넉하게 잡아야 한다. UPS가 LB를 보내는 시점보다 내가 정한 기준이 늦으면 배터리가 먼저 죽는다.

battery.runtime 은 UPS가 현재 부하를 보고 추정하는 값이라 정확하지 않다. 부하가 갑자기 늘면 남은 시간이 뚝 떨어진다. 그래서 600처럼 여유 있는 값을 넣었다.