Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
В случае периодических, но достаточно кратковременных, отключений электроэнергии и наличии недорого ИБП с 1-2 аккумуляторами на 7 А.ч, не всегда есть смысл выключать компьютер пока не дадут свет. Особенно если вам долго и сложно поднимать рабочее окружение. Ниже будут приведены замеры потребления мощности для конкретного десктопа и стратегия работы с ИБП при нестабильном электричестве.
Если очень грубо, Linux имеет два вида «спящего режима» — hibernate, когда состояние памяти сбрасывается на диск и при старте ОС оттуда же считывается, а второй suspend — питание на планки RAM подается, но останавливаются жесткие диски, вентиляторы, в т.ч. блока питания. Hibernate, на мой взгляд, малоактуален, с текущими объемами памяти, необходимостью дополнительной настройки, вероятностью высадить аккумулятор ИБП именно во время перехода в него. Из плюсов — если вы успеете перейти в hibernate, то разряд аккумулятора в ноль вам не страшен.
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
service docker start