배터리 소모 불만은 대개 “VPN이 내 배터리를 먹는다”는 형태로 온다. 이는 관찰이 아니라 결론이다. 측정이 보여 주는 것은 전송, 무선 깨우기, 재연결이 뒤섞여 기기를 바쁘게 만들었다는 점이다. 암호화도 그 청구서에 기여하지만 현대 스마트폰에서는 가장 큰 항목인 경우가 드물다. 셋을 분리하면 불만은 실제로 시험해 볼 수 있는 것이 된다.

터널이 패킷의 여정에 더하는 것

터널이 운반하는 모든 패킷은 인증되고, 암호화되고, 또 하나의 헤더로 감싸여 반대편에서 풀린다. 이 작업은 프로세서 사이클을 쓰고, 더 중요하게는 페이로드만 있을 때보다 네트워크 인터페이스를 더 오래 바쁘게 만든다. 터널을 통해 십 분 동안 도는 백업은 패킷당 오버헤드가 조금 더 클 뿐 여전히 십 분짜리 백업이다. 바이트와 소요 시간은 애플리케이션에서 오지 터널에서 오지 않는다.

그래서 배터리 보고서의 퍼센트는 오버헤드를 가늠하는 데 좋지 않은 지침이다. 보고서는 작업을 구성 요소별로 귀속시키고, 그 귀속 규칙은 플랫폼마다 다르다.

보고서는 네트워크 카운터와 화면 켜짐 시간 옆에 두고 읽어라. 전송 구간이 소모 구간과 맞아떨어지면 작업량이 결과를 설명하며 프로토콜은 부차적이다. 카운터가 평평한데도 소모가 이어지면 무언가가 무선을 깨워 두고 있다는 뜻이며, 다음 절이 살펴볼 곳이다.

킵얼라이브, 재연결, 무선의 깨어 있는 상태

유휴해 보이는 화면이 유휴한 네트워크를 증명하지는 않는다. 동기화, 메시징, 업데이트 확인은 모두 소량의 트래픽을 보내며, 각각은 교환 자체가 지속되는 시간보다 훨씬 오래 무선을 저전력 상태에서 끌어낼 수 있다. 작고 잦은 트래픽은 고정 비용이 지배하므로 바이트당 비싸다.

터널은 킵얼라이브라는 형태로 자체 소량 트래픽을 더한다. 이는 NAT 매핑을 열린 채로 유지하거나 사라진 피어를 알아차리기 위한 것이다. 그 목적은 프로토콜과 네트워크에 따라 다르며, 끄면 활동이 줄 수 있지만 유휴 기간 뒤에 터널을 쓸 수 없게 될 수 있다. 다른 값을 시험한다면 원래 값을 기록하고 그 뒤에도 터널이 복구되는지 확인하라. 다른 프로토콜의 간격을 절대 가져오지 마라. 한 설계에 맞는 상수가 다른 설계에서는 임의적이기 때문이다.

연결 교체가 두 번째 비용이다. 몇 분마다 다시 연결하는 클라이언트는 페이로드 대신 핸드셰이크에 시간을 쓰고, 무선은 안정될 기회를 얻지 못한다.

플랫폼이 전력을 아끼려고 터널을 멈출 때

모바일 운영체제는 백그라운드 실행을 제한하며, 터널도 그 정책에서 예외가 아니다. 화면이 꺼질 때 사라지는 연결은 보통 서버가 세션을 거부하는 것이 아니라 플랫폼 통합의 문제다. 클라이언트 자체의 배터리 지침이 시작점인데, 잠든 동안 연결을 유지하는 지원되는 방법을 설명하기 때문이다.

모든 것을 전력 관리에서 예외로 두는 것은 해결책이 아니다. 다른 작업 부하를 만들고 당신이 하려던 비교를 무너뜨린다.

그다음 기기가 잠들 때 어떻게 할지 정하라. 상시 동작, 터널 없는 차단, 배터리 최적화는 서로 다른 세 가지 질문에 답한다. 필요한 커버리지를 조용히 포기해 전력을 아끼는 설정은 원래 목표를 지킨 것이 아니라 실패를 감춘 것이다. 무엇이든 조정하기 전에 의도한 정책을 적어 두라. 그것이 없으면 소모하는 터널과 그냥 없는 터널 중에서 고르고, 어느 결과든 성공이라 부르게 된다.

믿음 대신 비교를 세워라

같은 것끼리 비교하라: 같은 작업, 같은 네트워크, 같은 시간, 비슷한 신호. 전송된 데이터, 재연결 횟수, 기기 온도, 신호 조건을 기록하라. 그중 하나만으로도 결과가 움직일 수 있다. 한 시간에 몇 퍼센트의 배터리는 대부분 스마트폰의 잡음 범위 안이지만, 여러 번 실행에서 반복되는 패턴은 그렇지 않다.Android VPN 안내서는 잘 설계된 클라이언트가 따르는 수명 주기와 상시 연결 동작을 설명하며, 그렇게 하지 않는 클라이언트를 볼 때 유용한 맥락이 된다.

선택적인 대용량 전송은 전력과 네트워크가 모두 저렴한 때로 옮겨라.

그런 다음 비교가 보여 준 대로 행동하라. 작업량이 원인이면 작업량을 일정에 넣어라. 연결 교체가 원인이면 그것을 일으키는 네트워크 전환을 고쳐라. 플랫폼이 원인이면 그 클라이언트에 대해 지원되는 배터리 정책을 따르라. 암호 설정을 약화하는 것은 원인은 건드리지 않고 숫자만 개선하는 유일한 변경이므로, 누구든 가장 마지막에 손대야 할 일이다.

관련 글