Falta de cache e acerto de cache: quando ocorrem (e como aumentar a taxa de acerto de cache)

Publicados: 2022-05-04

Otimizar o desempenho do seu site sem uma política de cache sólida em vigor é como tentar construir uma casa na areia movediça.

Você pode usar os melhores materiais e ferramentas, mas quando sua base não é sólida, você sempre sentirá que algo atrapalha seu progresso.

Sua política de cache é a espinha dorsal do desempenho excepcional na web do seu site. Se você tiver um sistema de cache adequado, poderá melhorar drasticamente a velocidade do seu site.

Por outro lado, sem uma boa configuração de cache funcional, as solicitações de seus visitantes levarão a falhas de cache, o que, por sua vez, diminuirá o tempo de carregamento da página.

E o cache miss é apenas um dos tópicos que serão abordados nas linhas a seguir junto com:

  • Uma breve introdução ao cache;
  • O que é um Cache Miss?;
  • O que é um Cache Hit?;
  • O que é Cache Hit Ratio e como calculá-lo?;
  • O que é um bom Cache Hit Ratio?;
  • Como aumentar o Cache Hit Ratio?;
  • NitroPack - a maneira mais fácil de obter um excelente Cache Hit Ratio.

Vamos começar!

Uma breve introdução ao cache

Antes de mergulhar no mundo dos acertos e erros do cache, é essencial entender como o cache funciona, para que serve e por que é considerado a melhor estratégia de otimização de velocidade.

Para entender o cache, precisamos dar um passo atrás e acompanhar todo o processo que ocorre nos bastidores quando um visitante solicita seu site.

Seu site é feito de documentos HTML, arquivos JavaScript e CSS, imagens, etc. Todos eles são armazenados em seu servidor de origem. Quando alguém deseja visitar seu site, o navegador envia uma solicitação ao seu servidor de origem, que por sua vez envia uma resposta com todos os arquivos necessários.

Como a web funciona

Quando você tem 10 visitantes que solicitam simultaneamente os arquivos do seu site, não deve haver um problema, e seu servidor pode lidar com eles com bastante facilidade.

No entanto, esse modelo não funciona quando 100.000 visitantes desejam visitar seu site.

Os servidores têm um limite de quantas solicitações podem processar simultaneamente e todas as solicitações após esse limite entram em uma fila, resultando em tempos de carregamento mais longos para seus visitantes.

Fila

É aí que entra o cache.

Em poucas palavras, o cache é o processo de salvar uma cópia dos dados do seu site (HTML, CSS, JS, imagens, etc.) em um local diferente chamado cache da web.

O cache da web desempenha o papel de intermediário entre os usuários e sua origem. Dessa forma, suas solicitações são atendidas do cache e não recuperadas do seu servidor.

Cache

Como resultado, suas páginas carregam muito mais rápido.

Você pode encontrar vários tipos de classificações de cache. Mas para os propósitos deste artigo, e para entender quando ocorrem erros e acertos de cache, vamos dar uma olhada nos dois tipos mais populares - cache de navegador e proxy.


Cache do navegador

Cada navegador tem sua própria política de cache e pode armazenar dados localmente no computador de um usuário.

Isso é útil porque torna o carregamento de uma página visitada anteriormente muito rápido. Na verdade, o cache do navegador é a principal razão pela qual os botões voltar e avançar podem fazer sua mágica.

Cache do navegador

Infelizmente, o cache do navegador é limitado à operação por dispositivo. Mas sua maior vantagem é que ele pode salvar solicitações de rede inteiras, o que o torna indispensável.


Cache do servidor proxy

O cache de proxy ajuda a aliviar a carga no servidor e a fornecer conteúdo relativamente mais rápido aos usuários finais. O melhor cenário é quando o cache de proxy funciona em conjunto com o cache do navegador.

Os servidores proxy são distribuídos em todo o mundo. Eles geralmente são mantidos por provedores de CDN (Content Delivery Network).

Os proxies são intermediários entre o usuário e seu servidor de origem. Você pode usá-los para armazenar conteúdo em cache em diferentes locais e, dessa forma, seu conteúdo ficará mais próximo dos usuários, reduzindo a latência e o tráfego de rede:

Com CDN

Ao contrário do cache do navegador, o cache do servidor proxy não é limitado por dispositivo e pode fornecer conteúdo simultaneamente para vários usuários.

Essa é a essência do cache. É um tópico com nuances, e há muito mais a ser revelado - vantagens e desvantagens dos diferentes tipos de cache, como configurar regras de cache e muito mais.

Mas esse não é o foco deste artigo.

Se você quiser se aprofundar no assunto, confira nosso artigo - Web Caching 101: Beginner's Guide To HTTP Caching (Exemplos, Dicas e Estratégias)

Ou assista nosso vídeo no YouTube:

Por enquanto, é importante lembrar que se os dados solicitados não forem encontrados em seu cache da web, é quando os atrasos e problemas começam a ocorrer. Isso nos leva a uma falha de cache.


O que é uma falta de cache?

Uma falta de cache ocorre quando um sistema, aplicativo ou navegador solicita a recuperação de dados do cache, mas esses dados específicos não podem ser encontrados atualmente na memória cache.

Quando ocorre uma falta de cache, a solicitação é encaminhada ao servidor de origem.

Depois que os dados são recuperados da origem, eles são copiados e armazenados na memória cache em antecipação a solicitações futuras semelhantes para esses mesmos dados.

Existem vários motivos para ocorrer uma falha de cache.

Por exemplo, os dados específicos nunca foram armazenados em cache em primeiro lugar.

Digamos que você tenha um site de comércio eletrônico e acabou de adicionar uma nova página de produto. Todas as imagens, arquivos HTML, CSS e JavaScript nunca foram adicionados à memória cache, pois ninguém os solicitou. Isso significa que seu primeiro visitante terá que enviar uma solicitação à sua origem para carregar a página. Após a primeira solicitação, os dados serão transferidos para o cache e servidos a partir dele.

Outra possibilidade de perda de cache é que os dados armazenados em cache foram removidos em algum momento.

Novamente, há várias coisas que podem ter levado a esse cenário - era necessário mais espaço, um aplicativo solicitou a remoção ou a política de tempo de vida dos dados expirou.

Falaremos mais sobre Time to Live mais adiante neste artigo.

Seja qual for o motivo, a verdade é que cada falta de cache leva a uma latência mais longa, tempos de carregamento lentos, experiência ruim do usuário e visitantes insatisfeitos.

No entanto, não quero deixá-lo com a impressão de que você precisa atingir o cache 100% do tempo. Isso não é realista.

Além disso, há alguns casos em que as faltas de cache são necessárias, pois talvez seja necessário garantir que o conteúdo que você fornece esteja sempre atualizado.

Por exemplo, um site de notícias como o bbc.com pode alterar o conteúdo de sua página inicial várias vezes ao longo do dia, pois as notícias de última hora precisam ser relatadas. Nesse caso, um acerto de cache significa que seus leitores não viram a versão mais recente do site e, respectivamente, perderam as últimas notícias.

Portanto, há uma vantagem na ocorrência de uma falta de cache.

No entanto, se você não tiver um site de notícias e não alterar seu conteúdo regularmente, tente manter os erros de cache o mais baixos possível e os acertos de cache o mais alto possível.


O que é um Cache Hit?

Um acerto de cache ocorre quando os dados solicitados são servidos com sucesso a partir do cache.

Por exemplo, se um usuário visitar uma de suas páginas de produto que deveria exibir uma imagem do produto que você vende, o navegador dele enviará uma solicitação dessa imagem ao cache (navegador ou CDN). Se a CDN tiver uma cópia da imagem em seu armazenamento, a solicitação resultará em um acerto de cache e a imagem será enviada de volta ao navegador.


O que é uma taxa de acerto de cache e como calculá-la?

A taxa de acertos do cache mede quantas solicitações um cache entregou com sucesso de seu armazenamento, em comparação com quantas solicitações ele recebeu no total.

Uma alta taxa de acertos de cache significa que a maioria das solicitações de seus usuários foi atendida pelo cache, o que, por sua vez, significa que eles experimentaram tempos de carregamento mais rápidos.

Você pode calcular sua taxa de acertos de cache usando esta fórmula:

Fórmula da taxa de acerto do cache

No entanto, isso pode não ser necessário, pois a maioria dos provedores de CDN calcula isso para você.

O painel do NitroPack também exibe essas informações:

NitroPack CHR


O que é uma boa taxa de acertos de cache?

Como regra geral - uma taxa de acertos de cache de 80% e superior é um bom resultado , pois significa que a maioria das solicitações é atendida pelo cache.

Qualquer coisa abaixo de 80% em sites estáticos indica uma política de cache ineficiente.

De acordo com a Cloudflare, um dos maiores provedores de CDN do mundo:

“Um site típico composto principalmente de conteúdo estático pode facilmente ter uma taxa de acertos de cache na faixa de 95 a 99%.

O Cache Hit Ratio global para NitroPack é de 90%. E cerca de 70% de todos os usuários do NitroPack experimentam um Cache Hit Ratio de 80% ou mais.


Como aumentar a taxa de acertos de cache?

Você pode tomar medidas específicas para reduzir o número de falhas de cache e, portanto, aumentar sua taxa de acertos de cache.

1. Configure regras de cache com base nas necessidades do seu site

O cabeçalho de controle de cache permite que você defina uma infinidade de regras de cache diferentes para otimizar a veiculação do seu conteúdo.

Algumas das regras incluem:

  • no-store informa aos caches da Web para não armazenar nenhuma versão do recurso em nenhuma circunstância;
  • no-cache informa ao cache da Web que ele deve validar o conteúdo em cache com o servidor de origem antes de servi-lo aos usuários;
  • max-age define a quantidade máxima de tempo (em segundos) que o cache pode manter o recurso salvo antes de baixá-lo novamente ou revalidar com o servidor de origem. Depois disso, o conteúdo é marcado como obsoleto;
  • s-maxage faz exatamente a mesma coisa que max-age, mas apenas para caches de proxy;
  • private informa aos caches da web que somente caches privados podem armazenar a resposta;
  • public marca a resposta como pública. Quaisquer caches intermediários podem armazenar respostas marcadas com esta instrução;

Cabeçalho de controle de cache

Você deve definir um Time to Live (por quanto tempo o cache manterá seus dados antes de recuperar informações atualizadas da origem) que melhor se adapte ao seu conteúdo.

Por exemplo, se um ativo muda aproximadamente a cada dois meses, um cabeçalho de idade máxima de 50 dias pode ser apropriado. No entanto, se o ativo for alterado diariamente, convém usar um cabeçalho sem cache .

Você pode encontrar mais informações sobre cabeçalhos de controle de cache, atualização de cache e validação em nosso vídeo do YouTube:

2. Ignore os parâmetros UTM

A execução de várias campanhas publicitárias (por exemplo, anúncios do Facebook, anúncios do Google etc.) gera diferentes URLs com parâmetros UTM específicos.

Como resultado, você tem uma única página com várias variações (diferentes parâmetros UTM) que precisam ser otimizadas.

Etiquetas UTM

Isso é um problema, pois cada variação de URL é considerada um objeto único e cada solicitação será direcionada ao servidor de origem.

Assim, cada solicitação será classificada como uma falta de cache, mesmo que o conteúdo solicitado esteja disponível no cache da web.

Isso leva a uma taxa de acertos de cache desnecessariamente mais baixa.


NitroPack - A maneira mais fácil de alcançar uma excelente taxa de acerto de cache

Depois de tudo o que cobrimos, todo o processo de alcançar uma alta taxa de acertos de cache pode parecer um pouco esmagador.

A boa notícia é que, se você estiver trabalhando com um provedor de CDN, a maioria das coisas que mencionei, como cabeçalhos de controle de cache, já pode ser resolvida para você.

Para todo o resto, você pode usar um plugin de cache.

Por exemplo, o NitroPack vem com recursos prontos para uso que garantem a alta taxa de acertos de cache de nossos usuários. Isso inclui:

  • O Cache Warmup simulará visitas orgânicas ao seu site, o que automaticamente leva o NitroPack a preparar versões otimizadas (em cache) do seu site para desktop e dispositivos móveis.
  • A invalidação de cache marca o conteúdo em cache como "obsoleto", mas continua servindo até que o conteúdo recém-otimizado esteja disponível. Como resultado, seus visitantes sempre veem conteúdo otimizado, mesmo que esteja desatualizado por um curto período de tempo.
  • CDN integrado, que elimina a necessidade de você sincronizar seu CDN com o plug-in de cache de sua escolha. Muitas vezes, isso é demorado, inconveniente e pode causar problemas inesperados.
  • Uma opção de parâmetro ignorado que permite que o NitroPack ignore alguns parâmetros UTM (e outros) comumente usados ​​por padrão, para que você não precise se preocupar ao executar suas campanhas de marketing.

Prâmetros Ignorados

Mas você não precisa acreditar na minha palavra. Teste o NitroPack gratuitamente e veja seu impacto por si mesmo.