Consumo de energia das APPs em redes 3G – parte 1

On 21 de junho de 2013 by admin

201103_ARO_article_top

Fonte[3]

É possível perceber que algumas aplicações para dispositivos móveis drenam a bateria muito rapidamente, sem aparentemente fazer nada para justificar isso. Ao tentarmos abrir alguma página da internet, a mesma costuma demorar algum tempo considerável para ser carregada.  Alguns aplicativos gastam mais bateria do que outros que fazem tarefas

similares. Um dos motivos disso acontecer é o uso indevido da rede celular, seja 2G, 3G e 4G. Neste post iremos compreender um pouco melhor o funcionamento de uma rede 3G e como ela pode impactar na sua app.

Um grande problema no eco-sistema de apps, é que cada parte de um sistema foi desenvolvida com o foco somente com sua própria área: desenvolvedores de apps, desenvolvedores de aparelhos e engenheiros de rede nãoatuam de maneira integrada. Outro problema é a complexa maneira de comunicação entre o aparelho e a rede, que é dificultada pela natureza da arquitetura das camadas de rede envolvidas.
Para uma app ser considerada eficiente em consumo de energia, é necessária  adapta-la `as características de uma rede celular , especialmente criada pra transmitir dados nos limites que mantém conectada a rede e reduzindo a necessidade de conexões, reduzindo assim a latência inerente a este tipo de rede.
stack
Figura 1. camadas de rede, sem fio e cabeada. Fonte [3]
Como visto na Figura 1, cada camada esconde detalhes de implementações, o que possibilita a construção de sistemas complexos, mas que não deixa claro a fonte dos problemas.  É possível apontar as causas da má utilização dos recursos e identificaram que existem soluções surpreendentemente simples para melhorar o cenário.
A rede celular difere bastante da rede cabeada devido a suas limitações: Recursos limitados e grande latência. Os dispositivos possuem bateria limitada e a capacidade da torre de celular é compartilhada por um grande número de equipamentos.
Características da Rede Celular
Untitled
Figura 2. Componentes na comunicação via rede celular. Fonte [3]
Ambiente de alta latência
Devido ao funcionamento que busca aliar a economia de energia dos aparelhos e a escalabilidade da rede, permitindo um uso mais amplo de toda rede, a rede celular possui diversos componentes que efetuam a gerência do seu uso. Tal gerência acaba por introduzir uma latência
no processo de comunicação.
Um dos componentes mais importantes na gestão do funcionamento da rede é o RNC – Radio Network Controller.
Funções do RNC:
  • Gerenciamento de recursos de rádio;
  • Gerenciamento de mobilidade;
  • Criptografia dos dados.
O RNC auxilia na gestão da rede, conservando capacidade ao abrir novas conexões somente quando necessário.  A abertura de uma nova conexão implica em um atraso entre 1 e 2 segundos.

Para utilizar melhor a bateria, existem três estados em que o dispositivo pode ficar: ocioso, estado half-power e full-power. No primeiro, é consumida pouca bateria e não há necessidade de conexões. O segundo é o estado que onde o dispositivo pode transmitir dados utilizando canais com pouca taxa de transmissão. Já o terceiro é o estado em que o dispositivo pode transmitir dados em alta velocidade e ocorre grande consumo de bateria.

O equipamento conserva energia de acordo com seu estado, dependendo se uma conexão é necessária ou não. Para redes 3G típicas, existem três estados, como visto na Figura 3:
  • Idle: consumo baixo de bateria.
  • Full-power (DHC): transmissão de dados em alta velocidade (até 7Mb/s). Alto consumo de bateria.
  • Half-power (FACH): estado intermediário. A troca de dados ocorre em canais com baixa velocidade de transmissão (15 Kbps).
states
Figura 3. Transição de estados. Fonte [3]
Para alternar de um estado para outro, existe um atraso. Para promoções, o atraso está relacionado com a troca de mensagens de controle entre o equipamento e a rede:
  • Idle -> Full-Power: aproximadamente 2s.
  • Half-Power -> Full-Power: aproximadamente 1,5s.
Manter o dispositivo no estado Full-Power implica em maior consumo de bateria e recursos de rede. É necessário que o estado do equipamento seja rebaixado para Half-Power ou Idle quando a transmissão de dados acabar. Um tempo de inatividade é utilizado para acionar o rebaixamento. Durante esse período, chamado de tail time, ainda há consumo de bateria e de recursos de rede.
  • Full-Power -> Half-Power: 5 segundos.
  • Half-Power -> Idle: 12 segundos.
Para trocar de um estado para outro, existe certo atraso. Para passar de ocioso para full-power, existe um atraso de aproximadamente 2 segundos. Para passar de Half-power para Full-power, aproximadamente 1,5 segundos. Para ocorrer a despromoção entre os estados, também existe um tempo chamado tail time. Do terceiro para o segundo estado, esse tempo é de 5 segundos. Do segundo para o primeiro, o tempo é de 12 segundos. Muitas vezes o dispositivo fica algum tempo consumindo bateria nesse período do tail time sem que nada esteja sendo transmitido.
Uma observação importante: Este tempo perceptível ao usuário de sua app. Mesmo que não tenha nada a ver com ela, o impacto será sentido!

Mas a troca de estados não é o único problema que causa latência nas redes móveis. Existe também a latência de quando um pacote é transmitido. Na rede cabeada, este tempo é de aproximadamente 25ms. Já na rede sem fio, o tempo  entre 100-200ms. Além disso, existem os pacotes que foram perdidos e precisam ser retransmitidos, o que aumenta ainda mais a latência.

Promoções são caracterizadas por atrasos e rebaixamentos por consumo de recursos sem que nada esteja sendo transmitido. O tail time poderia ser reduzido, mas isso introduz um outro problema:
  • Maior probabilidade de um rebaixamento ocorrer prematuramente.
  • Ao diminuir o tail time em 3 segundos, foi observado que a utilização de recursos diminuiu 40% para determinada aplicação. Porém, o número de promoções aumentou em 31%.
Estados de energia do dispositivo
Alguns equipamentos possuem um mecanismo para liberar recursos mais rapidamente, chamado fast dormancy.
Essa característica permite que uma app envie uma mensagem de controle para unilateralmente e imediatamente rebaixar o dispositivo para um estado menor. Problema: como prever o fim da conexão?
A promoção de estado é apenas uma das fontes de latência em redes celulares. Após a conexão, existe a latência associada com as requisições e respostas. Comparando as redes, temos:
  • Rede cabeada: 25ms
  • Rede celular: 100ms~200ms
Uma requisição de dados de uma APP engloba diversos atrasos:
Alocação de recursos, requisições, DNS lookup e Pacotes perdidos.
No próximo post iremos ver passo a passo o custo de uma requisição HTTP.
Bibliografia:
[1] Feng Qian, Zhaoguang Wang, Alexandre Gerber, Zhuoqing Morley Mao, Subhabrata Sen, and Oliver Spatscheck. 2010. Characterizing radio resource allocation for 3G networks. In Proceedings of the 10th ACM SIGCOMM conference on Internet measurement (IMC ’10). ACM, New York, NY, USA, 137-150. DOI=10.1145/1879141.1879159 http://doi.acm.org/10.1145/1879141.1879159
[2]Matti Siekkinen, Mohammad Ashraful Hoque, Jukka K. Nurminen, and Mika Aalto. 2013. Streaming over 3G and LTE: how to save smartphone energy in radio access network-friendly way. In Proceedings of the 5th Workshop on Mobile Video (MoVid ’13). ACM, New York, NY, USA, 13-18. DOI=10.1145/2457413.2457417 http://doi.acm.org/10.1145/2457413.2457417

[3] http://www.research.att.com/articles/featured_stories/2011_03/201102_Energy_efficient?fbid=P9wpTtUy47d

Deixe um comentário

O seu endereço de e-mail não será publicado.