Skarga na zużycie baterii zwykle przychodzi jako „VPN zjada mi baterię”, co jest wnioskiem, a nie obserwacją. Pomiar pokazuje, że urządzenie zajmowała mieszanka transmisji, wybudzeń radia i ponownych połączeń. Szyfrowanie dokłada się do tego rachunku, a w nowoczesnym telefonie rzadko jest największą pozycją. Oddziel trzy rzeczy, a skarga stanie się czymś, co naprawdę można przetestować.

Co tunel dodaje do podróży pakietu

Każdy pakiet, który niesie tunel, jest uwierzytelniany, szyfrowany, owijany w kolejny nagłówek i rozpakowywany na drugim końcu. Ta praca kosztuje cykle procesora i, co ważniejsze, dłużej zajmuje interfejs sieciowy niż sama użyteczna treść. Kopia zapasowa trwająca dziesięć minut przez tunel nadal jest dziesięciominutową kopią, tylko z nieco większym narzutem na pakiet. Bajty i czas trwania pochodzą z aplikacji, nie z tunelu.

Dlatego procent w raporcie baterii jest słabym przewodnikiem po narzucie. Raport przypisuje pracę do komponentów, a zasady przypisania różnią się między platformami.

Czytaj raport obok licznika sieci i czasu włączenia ekranu. Gdy okno transmisji pokrywa się z oknem rozładowania, obciążenie wyjaśnia wynik, a protokół schodzi na dalszy plan. Gdy rozładowanie trwa, a liczniki stoją, coś trzyma radio w stanie czuwania, i następny rozdział jest miejscem, w którym trzeba szukać.

Keepalive, ponowne połączenia i stan czuwania radia

Ekran, który wygląda na bezczynny, nie dowodzi bezczynnej sieci. Synchronizacja, wiadomości i sprawdzanie aktualizacji wysyłają niewielkie ilości ruchu, a każde z nich może wyciągnąć radio ze stanu niskiego zużycia energii na znacznie dłużej, niż trwa sama wymiana. Mały, częsty ruch jest drogi na bajt, bo dominuje koszt stały.

Tunel dodaje własny mały ruch w postaci keepalive, które utrzymują otwarte mapowanie NAT lub pozwalają zauważyć zniknięcie drugiej strony. Ich cel zależy od protokołu i sieci, a wyłączenie może zmniejszyć aktywność, ale zostawić tunel bezużyteczny po okresie bezczynności. Jeśli testujesz inną wartość, zapisz pierwotną i potwierdź, że tunel nadal się potem odbudowuje. Nigdy nie przenoś interwału z innego protokołu, bo stała odpowiednia dla jednego projektu jest w innym dowolna.

Drugim kosztem jest wymiana połączeń. Klient, który łączy się ponownie co kilka minut, spędza czas na uściskach dłoni zamiast na danych, a radio nigdy nie ma szansy się uspokoić.

Gdy platforma zatrzymuje tunel, aby oszczędzać energię

Mobilne systemy operacyjne ograniczają działanie w tle, a tunel nie jest z tego wyłączony. Połączenie, które znika po wyłączeniu ekranu, to zwykle problem integracji z platformą, a nie serwer odrzucający sesję. Wskazówki dotyczące baterii samego klienta są miejscem, od którego warto zacząć, bo opisują obsługiwany sposób pozostania połączonym podczas snu.

Wyłączenie wszystkiego spod zarządzania energią nie jest rozwiązaniem. Tworzy inne obciążenie i niszczy porównanie, które próbowałeś zrobić.

Potem zdecyduj, co ma się stać, gdy urządzenie śpi, bo stała praca, blokowanie bez tunelu i optymalizacja baterii odpowiadają na trzy różne pytania. Ustawienie, które oszczędza energię, po cichu porzucając wymagane pokrycie, nie zachowało pierwotnego celu, tylko ukryło awarię. Zapisz zamierzoną politykę, zanim cokolwiek dostroisz. Bez tego wybierasz między tunelem, który rozładowuje, a tunelem, którego po prostu nie ma, i każdy z wyników nazywasz sukcesem.

Zbuduj porównanie zamiast przekonania

Porównuj podobne z podobnym: to samo zadanie, ta sama sieć, ten sam czas, podobny sygnał. Zapisz przesłane dane, liczbę ponownych połączeń, temperaturę urządzenia i warunki sygnału, bo każdy z tych czynników może sam przesunąć wynik. Kilka procent baterii na godzinę mieści się w szumie większości telefonów, a powtarzalny wzorzec w kilku przebiegach już nie. Wskazówki dotyczące Android VPN opisują cykl życia i zachowanie stałego połączenia, których przestrzega dobrze zaprojektowany klient, co jest przydatnym kontekstem, gdy jakiś klient tego nie robi.

Przenieś opcjonalne duże transmisje na moment, gdy energia i sieć są tanie.

Potem działaj zgodnie z tym, co pokazało porównanie. Jeśli wyjaśnia to obciążenie, zaplanuj obciążenie. Jeśli wyjaśnia to wymiana połączeń, napraw przejście sieciowe, które ją powoduje. Jeśli wyjaśnia to platforma, stosuj obsługiwaną politykę baterii dla tego klienta. Osłabianie ustawień kryptograficznych to jedyna zmiana, która poprawia liczbę, nie ruszając przyczyny, dlatego powinna być ostatnią rzeczą, po którą ktokolwiek sięga.

Powiązane artykuły