DevSecOps

2 set, 2013

Latência: o novo gargalo do desempenho Web

Publicidade

Se queremos uma experiência de navegação mais rápida, então reduzir o tempo de ida e volta (round trip time – RTT) deve estar perto do topo da nossa lista. Ou, como Mike Belshe colocou: mais banda larga não importa (muito).

Agora, vamos ser claros, maior banda larga não é uma coisa ruim, especialmente para os casos de uso que requerem transferência de grandes volumes de dados: streaming de vídeo, grandes downloads, e assim por diante. No entanto, quando se trata de sua experiência de navegação web, verifica-se que a latência, não a banda larga, é provavelmente o fator limitante hoje. Como consumidor, você considerou isso quando você escolheu o seu provedor de Internet? Provavelmente não, ainda estou para ver qualquer menção do provedor, ainda mais anunciar latência.

Banda larga vs latência

As estatísticas do State of the Internet da Akamai mostra que, a partir de 2011, um consumidor médio dos EUA começou a acessar a web em uma conexão de 5Mbps+. Na verdade, com o rápido crescimento da banda larga em todo o mundo, muitos outros países estão pairando em torno do mesmo número, ou se aproximando rapidamente. Quando isso acontece, 5Mbps é um limite importante.

desempenho-web-1

Os dois gráficos acima mostram os resultados de variação da banda larga e latência no tempo de carregamento da página (page load time – PLT). Fazer um upgrade da sua conexão de 1Mbps para 2Mbps divide o PLT, mas logo depois disso estamos em resultados decrescentes. Na verdade, a atualização de 5Mbps para 10Mbps resulta em uma simples melhoria de 5% nos tempos de carregamento da página! Em outras palavras, um consumidor médio nos EUA não vai se beneficiar muito ao atualizar sua conexão quando se trata de navegação web.

No entanto, o gráfico de latência conta uma história totalmente diferente. Para cada melhoria de 20ms na latência, temos uma melhoria linear no tempo de carregamento da página. Existem muitas boas razões para isso: uma página média é composta de muitos recursos pequenos, que exigem muitas conexões TCP, e o desempenho de cada um está intimamente ligado ao RTT.

Desenvolvendo uma intuição para latência

Então, o que é 20ms de latência? A maioria de nós tem um bom modelo mental de banda larga, estamos acostumados a pensar em megabytes e tamanhos de arquivos. Para latência, a distância percorrida pela luz é a nossa melhor comparação.

A latência é limitada pela velocidade da luz. Assim, 20ms RTT é equivalente a ~3000 km, ou um raio de 1,860 milhas de luz que viaja no vácuo. Não podemos fazer melhor sem mudar as leis da física. Nossos pacotes de dados viajam através de fibras, o que diminui nossa velocidade por um fator de ~1.52, o que se traduz em 2027 km, ou um raio de 1.260 milhas. O que é notável é que já estamos dentro de um pequeno fator constante do limite teórico.

Veja neste mapa um exemplo simples, mas de cenário irreal: você está no centro do círculo, qual é a distância máxima de um caminho de via única que o pacote pode viajar para um X ms RTT? Irreal porque o “Fiber RTT”, assume que temos um link de fibra direto entre o centro e a borda, mas ainda assim nos dá uma boa ferramenta para aguçar a nossa intuição. Por exemplo, o envio de um pacote a partir de San Francisco para Nova York carrega um RTT mínimo de 40ms.

latencia-1

Se você clicar no círculo e movê-lo, vai notar algo muito importante: o Mercator Projector, que estamos tão acostumados a ver, tem muita distorção. Os mesmos 20ms, quando no Equador, cobrem uma área muito menor do que se você mover o círculo para o Norte ou para o Sul.

latencia-2latencia-3

Melhorar a banda larga e a latência

A demanda por banda larga está crescendo rapidamente, mas a boa notícia é que ainda temos muita capacidade na fibra atual (~20% da capacidade de iluminação utilizada) e, ainda mais importante, a capacidade pode ser melhorada por atualizações dos cabos submarinos existentes: a capacidade de ligações do trans-Pacífico triplicou entre 2007 e 2011, a maior parte por meio de upgrades.

A latência, por outro lado não oferece nenhuma desses vitórias “fáceis”. Sim, o equipamento pode ser melhorado para ganhar alguns milésimos de segundo, mas, se você quer melhorias significativas, então a resposta é simples: você precisa de cabos novos e mais curtos para reduzir o atraso de propagação. Como você deve ter adivinhado, esta é uma proposta cara:

A Huawei está trabalhando com outra empresa, Hibernia Atlantic, para lançar o primeiro cabo submarino transatlântico de fibra ótica em uma década, um projeto de mais de $400 milhões que vai permitir que os comerciantes economizem 5 milésimos de segundo. Para fazer isso, Hibernia está colocando cerca de 3.000 quilômetros de cabos através dos Grandes Bancos fora do Canadá e do Atlântico Norte, uma rota mais curta que a maioria das empresas têm evitado porque atravessa águas relativamente rasas.

desempenho-web-2

Isso representa mais de US$ 80 milhões economizados por milissegundo ganhos; a latência é cara – literalmente e de modo figurado. Ainda mais impressionante, o limite teórico entre Nova York e Londres é de 37.2ms, o que significa que esse novo cabo (60ms RTT) só adiciona 38% de sobrecarga de comutação e amplificação.

A “última milha” da latência e seu provedor de Internet

40ms entre Nova York e Londres é ótimo na teoria, mas na prática os nossos tempos de ping são muito maiores. Quando Mike Belshe publicou seu estudo em 2010, a média mundial de RTT para o Google foi ~100ms, e ~60-70ms dentro os EUA. Em 2012, a média mundial de RTT para o Google ainda é ~100ms, e ~50-60ms dentro os EUA. Essa é uma tendência positiva dentro os EUA, mas ainda há muito espaço para melhorias.

Acontece que a “última milha” de conexão entre sua casa e seu provedor de Internet é muitas vezes um gargalo significativo. De acordo com o recente relatório Measuring Broadband America, da FCC, nos horários de pico:

Serviços de fibra-para-casa forneceram 17 milissegundos (ms) de latência de ida e volta em média, enquanto os serviços baseados em cabo forneceram uma média de 28 ms, e aqueles baseados em DSL, uma média de 44 ms.

Isso é 17-44ms de latência apenas para o nó de medição mais próximo dentro do seu provedor de Internet, antes de seu pacote atingir qualquer backbone de Internet. Você pode executar um traceroute simples para testar seu próprio provedor, o meu primeiro hop (<60 milhas) para Comcast oscila na faixa de 15-45ms:

gt; traceroute google.com
 traceroute to google.com (74.125.224.102), 64 hops max, 52 byte packets
 1  10.1.10.1 (10.1.10.1)  2.322 ms  1.084 ms  1.002 ms # local router
 2  96.157.100.1 (96.157.100.1)  38.253 ms  16.489 ms  24.702 ms # comcast
 ...

Latência de web móvel: 100-1000ms

A web móvel é um jogo totalmente diferente, e não um melhor. Se você tiver sorte, seu rádio está ligado, e dependendo de sua rede, qualidade do sinal e hora do dia, então apenas atravessar o seu caminho para o backbone da Internet pode levar de 50 a 200ms. A partir daí, aumente o tempo de backbone e multiplique por dois: estamos olhando para um intervalo de 100-1000ms RTT no dispositivo móvel. Aqui estão algumas letras miúdas do FAQ da Virgin Mobile (de propriedade da Sprint):

Usuários da rede 4G da Sprint podem esperar velocidades médias de 3 Mbps a 6 Mbps de download, e de até 1,5 Mbps de upload, com uma latência média de 150ms. Na rede 3G da Sprint, os usuários podem esperar velocidades médias de 600 kbps – 1,4 Mbps de download, e de 350Kbps – 500Kbps de upload, com uma latência média de 400ms.

Para adicionar insulto à injúria, se o telefone estiver ocioso e o rádio desligado, então você tem que adicionar outros 1000-2000ms para negociar o link de rádio. Testando meu Galaxy Nexus, que está sendo executado no Sprint, ele mostra o primeiro hop com uma média de 95ms. Se a latência é importante em conexões com fio, então é um gargalo crítico para a web móvel.

“Alta velocidade” de Internet

Se você está encarregado de otimizar o seu site ou serviço, então certifique-se de investigar a latência. Relatórios do Google Analytics Site Speed podem dar exemplos e e relatar a realidade da experiência de latência de seus visitantes. Resultado: como um consumidor, verifique os números de latência para além do tamanho do tubo (pipe).

Finalmente, se não podemos fazer os bits viajarem mais rápido, então a única maneira de melhorar a situação é mover os bits para mais perto: coloque seus servidores mais perto de seus usuários, alavanque o CDN (Content Delivery Network), reutilize conexões sempre que possível (TCP de início lento) e, é claro, nenhum bit é mais rápido que um bit que seja – ou seja, envie menos bits. Quanto menos bits, melhor. Nós precisamos de mais foco, ferramentas e discussões sobre o impacto da latência, especialmente em links de alta latência, como a web móvel. Conectividade de “alta velocidade” não é tudo sobre banda larga, ao contrário do que muitos de nossos provedores de Internet gostariam de promover.

***

Artigo traduzido pela Redação iMasters, com autorização do autor. Publicado originalmente em http://www.igvita.com/2012/07/19/latency-the-new-web-performance-bottleneck/