В случае периодических, но достаточно кратковременных, отключений электроэнергии и наличии недорого ИБП с 1-2 аккумуляторами на 7 А.ч, не всегда есть смысл выключать компьютер пока не дадут свет. Особенно если вам долго и сложно поднимать рабочее окружение. Ниже будут приведены замеры потребления мощности для конкретного десктопа и стратегия работы с ИБП при нестабильном электричестве.


Если очень грубо, Linux имеет два вида «спящего режима» — hibernate, когда состояние памяти сбрасывается на диск и при старте ОС оттуда же считывается, а второй suspend — питание на планки RAM подается, но останавливаются жесткие диски, вентиляторы, в т.ч. блока питания. Hibernate, на мой взгляд, малоактуален, с текущими объемами памяти, необходимостью дополнительной настройки, вероятностью высадить аккумулятор ИБП именно во время перехода в него. Из плюсов — если вы успеете перейти в hibernate, то разряд аккумулятора в ноль вам не страшен.


Но, следует помнить(спасибо ZlobniyShurik за дополнение) у suspend режима тоже есть недостатки:

1. Самое очевидное — иногда вместо кратковременных провалов напряжения таки случаются пропадания на несколько часов. В этом случае suspend станет смертельной ловушкой для данных. Перед тем как уйти в suspend сохраните все что можно.


2. Многие недорогие бесперебойники принципиально не рассчитаны на долгую работу от батарей даже с небольшой нагрузкой (перегрев повышающего преобразователя из-за плохо продуманного охлаждения и низкого кпд). Мало того, у части из них просто принудительно гасится электроника после N минут работы от батареи.


3. Ещё может подложить свинью Green mode (он, кстати, у части ИБП неотключаем). Ваш комп уходит в спячку, снижает потребление до 30-25-20 ватт, ИБП понимает, что в него ничего, кроме какой-то ненужной мелочи не включено и начинает экономить электроэнергию путём своего полного отключения


Тем не менее, Suspend позволяет достаточно быстро входить и выходить из него, без дополнительной настройки. Просто по команде «sudo systemctl suspend». А что с энергопотреблением?


Итак, конфигурация в режиме простоя кушающая электричество:


  • 2 монитора
  • процессор AMD FX-6300 + какая-то материнка
  • 4 планки RAM
  • 2 TB HDD 7200
  • DVD-ROM
  • внешний HDD по USB3
  • мышь, клавиатура, вебкамера

Все это потребляет 160 вт. С выключенными мониторами — 118 Вт. После нажатия «systemctl suspend» (компьютер переводит мониторы в режим standby) — 25 вт. Если выключить мониторы еще и физически — 23.5 Вт.


Таким образом перевод компьютера в режим suspend позволит вам увеличить время работы от ИБП в 5-6 раз. Что может быть достаточно, если вы примерно представляете частоту и длительность отключений света в своем регионе. Я не называю конкретных цифр по времени работы, потому что это сильно зависит от состояния аккумуляторов в ИБП, которые нужно менять(по моему опыту) не реже чем раз в 2 года, а откровенную китайщину — лучше раз в год.


И поскольку это линукс, то тут есть нюансы. При использовании docker, который любит менять таблицу маршрутизации, могут наблюдаться определенные проблемы с сетью. Чтобы этого не было, для ухода в suspend лучше использовать такой скрипт(который пускать из под root):


#!/bin/bash
# уходим в ждущий режим
systemctl suspend

# все что ниже будет выполнено сразу после включения компьютера

systemctl stop docker

# примерный перезапуск сети
ifconfig <интерфейс> down
dhclient <интерфейс>

# если нужно поднять openvpn/wireguard то делаете это тут
killall openvpn && cd /etc/openvpn && openvpn client.ovpn

# только теперь запускаете docker
systemctl start docker