Разряжает ли VPN батарею? Что радио и так уже делало
Шифрование — лишь малая часть счёта. Разделите передачу, пробуждения радио и переподключения, а затем сравните два прогона, различающихся одной вещью.
Жалоба на разряд батареи обычно звучит как «VPN съедает мою батарею», а это вывод, а не наблюдение. Измерение показывает, что устройство занимала смесь передач, пробуждений радио и переподключений. Шифрование вносит вклад в этот счёт, и на современном телефоне оно редко бывает самой большой строкой. Разделите три составляющие, и жалоба станет тем, что действительно можно проверить.
Что туннель добавляет к пути пакета
Каждый пакет, который несёт туннель, аутентифицируется, шифруется, заворачивается в ещё один заголовок и разворачивается на другом конце. Эта работа стоит циклов процессора и, что важнее, дольше держит сетевой интерфейс занятым, чем это делала бы одна полезная нагрузка. Резервная копия, идущая через туннель десять минут, остаётся десятиминутной копией с чуть большими накладными расходами на пакет. Байты и длительность берутся из приложения, а не из туннеля.
Поэтому процент в отчёте о батарее — плохой ориентир для накладных расходов. Отчёт приписывает работу компонентам, а правила приписывания различаются между платформами.
Читайте отчёт рядом с сетевым счётчиком и временем включённого экрана. Когда окно передачи совпадает с окном разряда, нагрузка объясняет результат, а протокол уходит на второй план. Когда разряд продолжается, а счётчики стоят на месте, что-то держит радио в бодрствовании, и следующий раздел — место, где нужно искать.
Keepalive, переподключения и бодрствующее состояние радио
Экран, который выглядит простаивающим, не доказывает простаивающую сеть. Синхронизация, сообщения и проверки обновлений отправляют небольшие объёмы трафика, и каждый из них может вывести радио из состояния низкого энергопотребления намного дольше, чем длится сам обмен. Малый частый трафик дорог на байт, потому что доминирует фиксированная стоимость.
Туннель добавляет собственный малый трафик в виде keepalive, которые существуют, чтобы держать открытым сопоставление NAT или замечать исчезнувшего партнёра. Их назначение зависит от протокола и сети, и их отключение может снизить активность, но оставить туннель непригодным после периода простоя. Если вы проверяете другое значение, запишите исходное и убедитесь, что туннель после этого всё ещё восстанавливается. Никогда не переносите интервал из другого протокола, потому что константа, подходящая одному проекту, в другом произвольна.
Второй расход — смена соединений. Клиент, переподключающийся каждые несколько минут, тратит время на рукопожатия вместо полезной нагрузки, и радио так и не получает шанса успокоиться.
Когда платформа останавливает туннель ради экономии энергии
Мобильные операционные системы ограничивают фоновое выполнение, и туннель не является исключением из этой политики. Соединение, исчезающее при выключении экрана, обычно является проблемой интеграции с платформой, а не сервера, отклоняющего сеанс. Собственные рекомендации клиента по батарее — то место, с которого стоит начать, потому что они описывают поддерживаемый способ оставаться на связи во время сна.
Освобождение всего от управления энергопитанием — не решение. Оно создаёт другую нагрузку и разрушает сравнение, которое вы пытались сделать.
Затем решите, что должно происходить, когда устройство спит, потому что постоянная работа, блокировка без туннеля и оптимизация батареи отвечают на три разных вопроса. Настройка, которая экономит энергию, тихо отбрасывая требуемое покрытие, не сохранила исходную цель, а скрыла сбой. Запишите предполагаемую политику, прежде чем что-либо настраивать. Без этого вы выбираете между туннелем, который разряжает, и туннелем, которого просто нет, и любой исход называете успехом.
Постройте сравнение вместо убеждения
Сравнивайте сопоставимое: та же задача, та же сеть, та же длительность, похожий сигнал. Записывайте переданные данные, число переподключений, температуру устройства и условия сигнала, потому что любой из этих факторов может сам сдвинуть результат. Несколько процентов батареи за час — это в пределах шума большинства телефонов, а воспроизводимая картина на нескольких прогонах — нет. Руководство по Android VPN описывает жизненный цикл и поведение постоянного подключения, которых придерживается грамотный клиент; это полезный контекст, когда какой-то клиент этого не делает.
Перенесите необязательные крупные передачи на момент, когда и энергия, и сеть дешевы.
Затем действуйте по тому, что показало сравнение. Если это объясняет нагрузка, планируйте нагрузку. Если это объясняет смена соединений, исправьте сетевой переход, который её вызывает. Если это объясняет платформа, следуйте поддерживаемой политике батареи для этого клиента. Ослабление криптографических настроек — единственное изменение, которое улучшает число, не трогая причину, поэтому к нему следует прибегать в последнюю очередь.