O caso
O site está no ar. Mas em Tóquio, demora.
A loja do Isaac roda em São Paulo e é rápida para quem compra no Brasil. Ele começou a vender café para o Japão, e lá cada clique parece levar uma eternidade. O servidor é o mesmo. O que mudou foi a distância.
Este post parte dos conceitos de Fundamentos da Nuvem e prepara o terreno para Regiões e Zonas.
O conceito
O que é latência
Latência é o tempo que um dado leva para ir de um ponto a outro. Na prática, o que mais importa é o tempo de ida e volta (round-trip time, ou RTT): o pedido sai do navegador, chega ao servidor e a resposta volta.
É como mandar uma pergunta pelo correio. Não importa o tamanho da carta: se o destinatário mora do outro lado do mundo, a resposta demora a chegar. Escrever mais rápido não resolve; a distância continua lá.
A latência é medida em milissegundos (ms). Parece pouco, mas uma página costuma fazer dezenas de idas e voltas até aparecer inteira, e os milissegundos se somam.
O limite
A culpa é da física
Os dados viajam como luz dentro da fibra óptica, a cerca de 200.000 km/s, dois terços da velocidade da luz no vácuo. É rápido, mas não é instantâneo: cada 1.000 km custam 5 ms só de ida, ou 10 ms de ida e volta.
| De São Paulo até | Distância | Mínimo de ida e volta (round-trip) |
|---|---|---|
| Rio de Janeiro | 361 km | 4 ms |
| Virgínia (EUA) | 7.651 km | 77 ms |
| Londres | 9.496 km | 95 ms |
| Tóquio | 18.534 km | 185 ms |
Nenhuma otimização de código vence a física. Para reduzir essa parte da latência, só existe um caminho: diminuir a distância.
Não confunda
Latência × largura de banda
As duas costumam ser chamadas de "velocidade da internet", mas medem coisas diferentes.
Latência (latency)
“Quanto tempo o dado leva para chegar?”
- Exemplo
- Um clique em Tóquio espera a resposta de um servidor em São Paulo.
- Foco
- Distância e tempo de resposta, em milissegundos.
Largura de banda (bandwidth)
“Quantos dados passam ao mesmo tempo?”
- Exemplo
- Baixar um vídeo de 4 GB numa conexão de 100 Mbps.
- Foco
- Volume por segundo, em Mbps ou Gbps.
Pense numa estrada. A largura de banda é o número de faixas: quantos carros passam ao mesmo tempo. A latência é o tempo da viagem de uma ponta à outra. Alargar a estrada deixa passar mais carros, mas não encurta a viagem.
Na prática
Como medir
O jeito mais simples é o comando ping, que mede o tempo de ida e volta até um endereço:
$ ping exemplo.com
64 bytes from 93.184.215.14: icmp_seq=0 ttl=56 time=118 msEm sistemas de verdade, ninguém olha uma medição só. O tempo varia a cada pedido, e a média engana: alguns pedidos muito lentos ficam escondidos atrás de muitos rápidos. Por isso se usam percentis:
p50 (mediana)
Metade dos pedidos foi mais rápida que esse valor. É a experiência típica.
p95
95% dos pedidos foram mais rápidos. Mostra os casos ruins comuns.
p99
Só 1% foi mais lento. Em milhões de pedidos, esse 1% ainda é muita gente.
A solução
Como reduzir
Se a distância é o problema, a solução é levar o conteúdo para perto de quem usa, e fazer menos viagens.
Região mais próxima (closest region)
Rodar a aplicação na região mais perto da maioria dos usuários. É o assunto de Regiões e Zonas.
CDN
Uma rede de servidores espalhados pelo mundo guarda cópias do conteúdo estático (imagens, vídeos, scripts) perto de cada usuário.
Cache
Guardar respostas já calculadas para não refazer o trabalho nem a viagem a cada pedido.
Menos idas e voltas (fewer round trips)
Juntar vários pedidos em um só. Cada ida e volta evitada é latência economizada.
As CDNs funcionam com pontos de presença (edge locations) em dezenas de cidades. Quem está em Tóquio recebe as imagens da loja de um servidor em Tóquio, e não de São Paulo.
Os provedores oferecem CDNs próprias ou de parceiros. Alguns exemplos: Amazon CloudFront na AWS, Azure Front Door no Azure e Cloud CDN no Google Cloud.
Termos-chave
Seis termos para fixar
Toque no cartão para ver a definição.
Teste rápido
Três perguntas, estilo prova
01
Uma empresa dobrou a largura de banda, mas os usuários do outro lado do mundo continuam vendo o site lento. O que explica?
02
Um site de vídeos tem usuários em vários continentes. Qual serviço reduz a latência para entregar os vídeos?
03
A média de resposta de uma API é 80 ms, mas alguns usuários reclamam de lentidão. Qual métrica revela o problema?
Latência aparece em qualquer certificação cloud: AWS, Azure, Google Cloud ou Oracle Cloud. É ela que justifica regiões perto dos usuários, CDNs e caches. O nome dos serviços muda; a física é a mesma.