Anual Pague anualmente e ganhe 2 meses grátis em qualquer plano pago. Ver planos
Entrar Comece grátis

Três páginas por segundo

Na manhã de 22 de setembro, o torun.ai começou a arrastar-se. Uma quinta de navegadores automáticos, mais de dois mil endereços em três quartos de hora, pedia as nossas páginas públicas uma a uma, e no pior minuto chegou…

Na manhã de 22 de setembro, o torun.ai começou a arrastar-se. Uma quinta de navegadores automáticos, mais de dois mil endereços em três quartos de hora, pedia as nossas páginas públicas uma a uma, e no pior minuto chegou a cerca de três páginas por segundo. Um site devia aguentar isso sem pestanejar. O nosso não aguentou: na janela mais carregada, mais de um quarto dos pedidos demorou mais de trinta segundos, e centenas de visitantes desistiram antes de a página chegar.

Não era a carga que pensávamos

Os suspeitos óbvios eram o robô e o processador. Nenhum se confirmou. Quando repetimos as mesmas três páginas por segundo contra uma cópia do site, este aguentou menos de um minuto e depois deixou de concluir fosse o que fosse. O uso do processador caiu de 60 por cento para 1, enquanto o número de threads subia de 12 para 166. Um servidor sobrecarregado trabalha mais; este estava à espera.

Uma ida e volta por cada palavra

Observar o servidor de cache durante uma única página mostrou do que estava à espera. Uma página enviou-lhe 585 comandos, e 428 eram uma mesma consulta e a sua renovação, repetidas: uma tabela de traduções que, no nosso site, está vazia. Cada texto traduzido da página, e uma página tem centenas, voltava a pedi-la, e cada pedido prendia um thread até a resposta chegar. A três páginas por segundo os threads esgotaram-se, e tudo ficou em fila atrás deles.

A correção, e um limite

Essas consultas passam a ser respondidas a partir da memória durante um minuto de cada vez, pedidas uma só vez quando expiram e limpas no servidor que altera uma tradução. A mesma página envia agora 31 comandos em vez de 585. Pusemos também um limite à frente da geração de páginas: um número fixo de páginas é gerado de cada vez, uma fila curta espera, e tudo o que passar disso recebe logo um «tente de novo daqui a pouco» em vez de tornar todas as páginas mais lentas.

Medido em produção

Depois da versão de 23 de setembro, voltámos a medir o site em produção. A página mediana é gerada em 42 milissegundos, contra 249, e a mais lenta em cada vinte em 72 milissegundos, contra quase dois segundos. A consulta que corria 214 vezes por página corre agora uma vez.

A lição que registámos é simples: um número de capacidade é uma medição, não uma crença. Nunca tínhamos testado o que o site público aguentava. Agora testámos, e voltaremos a testar antes de indicar um número.

Partilhar LinkedIn X E-mail
Experimente no seu próprio trabalhoCada resposta mostra quanto custou. Comece no plano gratuito. Comece grátis
Receba novidades do produto, não ruído Novos modelos, funcionalidades e destaques do changelog — um email curto quando algo é mesmo lançado.
Ao subscrever, aceita receber e-mails da ToRun com novidades do produto. Pode cancelar a subscrição a qualquer momento. Política de Privacidade