Dec 17, 2024
Bruna
12min Ler
Apesar do armazenamento em cache ser um dos mecanismos mais vitais na otimização do desempenho de um site, o fenômeno do cache miss pode aumentar o tempo de carregamento dos dados, resultando em altas taxas de rejeição e uma experiência de usuário desagradável.
Este artigo vai te ajudar a entender melhor o que é o cache miss, como isso funciona e como reduzir a ocorrência desse problema. Também vamos conhecer melhor os diferentes tipos de cache miss.

O cache miss, ou falha de cache, acontece quando o sistema de cache não encontra os dados solicitados armazenados em sua memória. Contrariamente, o cache hit, ou êxito de cache, acontece quando o cache localiza em sua memória os dados requeridos, respondendo à solicitação com sucesso. A taxa de cache hits deve ser maior que a taxa de cache misses para que um sistema de cache seja considerado eficiente. Uma das melhores formas de fazer isso é diminuir e evitar o cache miss.
O processo envolvendo o uso do cache permite que sistemas de computadores, incluindo sites, aplicativos web e aplicativos móveis, armazenem cópias de arquivos em um local temporário, chamado de cache.
O cache fica próximo da unidade de processamento central (CPU) e da memória principal. Este último elemento serve como uma memória dinâmica de acesso aleatório (DRAM), enquanto o cache serve como uma forma estática de memória de acesso aleatório (SRAM).
A SRAM conta com um tempo de acesso menor, sendo o mecanismo perfeito para melhorar o desempenho de uma página ou aplicação. Isso acontece porque o cache irá automaticamente armazenar a versão estática do conteúdo do site na primeira vez em que um usuário visitar essa página da web.
Sendo assim, a cada vez que o usuário voltar a visitar a página, o dispositivo utilizado por ele não precisará refazer o download de todo conteúdo do site novamente. O cache assume essa função e processa a solicitação de acesso, entregando o conteúdo já armazenado em sua memória — o que é muito mais rápido.
Geralmente há três técnicas de mapeamento de cache que podem ser escolhidas:
Para ajudar a garantir um sistema de cache eficiente, os donos e desenvolvedores de sites podem monitorar suas penalidades quanto a ocorrências de cache miss, e as taxas de sucesso conquistadas com cache hits.
Uma penalidade de cache miss faz referência ao atraso de carregamento da página causado por uma ocorrência de cache miss. Sendo assim, a penalidade indica o tempo extra que o cache precisou utilizar para localizar e carregar as informações a partir da sua memória.
Geralmente, a hierarquia de memória consiste em três níveis, que afetam o quão rápido as informações conseguem ser localizadas e enviadas com sucesso. Abaixo está indicada a hierarquia de memória comumente encontrada em um sistema de cache:

Quando um cache miss acontece, o sistema de cache precisa realizar buscas mais aprofundadas nas unidades de memória da CPU para encontrar a informação desejada. Em outras palavras, se o cache não consegue localizar os dados solicitados no nível L1, ele irá buscar pelo cache de nível dois, o L2.
Quanto mais níveis de cache o sistema precisa verificar, mais tempo ele leva para responder à solicitação do usuário visitante. Isso resulta em um aumento na taxa de cache miss, principalmente quando o sistema precisa buscar os dados armazenados no banco de dados principal (L3).
Agora vamos analisar os quatro tipos de cache miss:
A taxa de cache hits mostra a porcentagem de solicitações encontradas com sucesso no cache. O cálculo dessa taxa é feito através de uma razão, isto é, dividindo o número de cache hits pelo número total de cache hits e cache misses — e então multiplicando o valor final por 100.
Taxa de cache hits = cache hits / (cache hits + cache misses) x 100
Por exemplo, se um site tem 107 cache hits e 16 cache misses, o responsável pela administração do site deve dividir 107 por 123, o que resulta em 0,87. Multiplicando esse valor por 100, chega-se ao resultado de 87% como a razão de cache hits.
Qualquer valor acima de 95% indica uma excelente taxa de cache hits. Dito isso, verifique as configurações de cache do seu site caso esta relação esteja abaixo de 80%.
Apesar do monitoramento da taxa de cache hits ser essencial para todos os sites, fazer o cálculo de seu valor manualmente não é a melhor opção. Graças aos plugins de cache, como o LiteSpeed Cache, WP Rocket, WP Super Cache, e W3 Total Cache, donos e gestores de sites podem automatizar este processo.
Problemas com relação a cache hits e cache misses são comuns no mundo do desenvolvimento de sites.
Os casos de cache miss desaceleram sites porque a CPU precisa aguardar certo tempo para que o cache localize e resgate na DRAM as informações solicitadas pelo visitante.
O único inconveniente da taxa de cache hit é que ela não informa ao dono do site os custos de latência e consumo de banda-larga envolvidos nos processos de cache hits. Isso acontece porque uma solicitação respondida com sucesso irá contar como um hit, independente de quanto tempo levou para a informação ser obtida.
Por este motivo, uma alta taxa de cache hits nem sempre indica uma estratégia de cache eficiente. Sabendo como reduzir os casos de cache miss, os donos e desenvolvedores de sites podem entender melhor como seus sistemas de cache realmente funcionam.
Vamos verificar três métodos para reduzir ocorrências de cache misses.
Como mencionado anteriormente, um caso de cache miss acontece quando a informação solicitada pelo visitante não pode ser encontrada no cache. Isso acontece por diversos motivos, como por exemplo, a expiração dos dados armazenados.
O cache lifespan é o intervalo de tempo entre a criação de uma cópia do conteúdo em cache até o momento em que é feita a limpeza desse cache. A configuração padrão costuma ser de 10 horas, mas donos e gestores de sites podem alterar esse valor, configurando um tempo de “vencimento” do cache que seja adequado às suas necessidades.
Por exemplo, um site que cuja atualização está agendada para ser feita mensalmente, pode não se beneficiar com um cache lifespan curto, como de um dia ou uma semana. O processo diário ou semanal é desnecessário neste caso, pois o site não terá novas informações para serem exibidas nesse pequeno intervalo de tempo.
Além disso, isso pode desencadear ainda mais ocorrências de cache misses, pois o sistema irá limpar o armazenamento e então precisará recarregar todos os arquivos perdidos novamente. Portanto, é recomendado que o tempo de vencimento, ou cache lifespan, seja calculado e configurado de acordo com o cronograma de atualizações do site.
Se você atualiza seu site duas vezes por semana, configure um cache lifespan diário. Caso você atualize o site a cada poucos minutos, um tempo de expiração de hora em hora pode ser mais adequado.
Utilizando um plugin de cache, a atualização do lifespan exige apenas alguns poucos cliques. Ainda assim, localizar essa configuração pode ser um pouco complexo, pois cada plugin possui uma forma própria de nomear e exibir essa funcionalidade.
Por exemplo, a configuração do cache lifespan no plugin LiteSpeed Cache está localizada na aba Cache, na informação denominada TTL.

Os donos de site podem configurar o tempo de expiração do cache para:
Os usuários do plugin WP Super Cache encontram as configurações do cache lifespan na seção avançada, localizando as informações de expiração. Para isso, navegue pelo menu Advanced → Expiry & Garbage Collection → Cache Timeout.

Usuários que utilizam o W3 Total Cache podem verificar as configurações na seção de cache de objetos, basta acessar a aba Object Cache → Default lifetime of cache objects.
O recurso de cache de objetos (LSMCD) reduz grandemente o tempo que o cache leva para localizar e carregar as informações solicitadas, assim melhorando a velocidade das respostas do seu site em até 10%.

No plugin WP Rocket, localize a seção Cache Lifespan contida na aba Cache.
Mantenha o valor do seu cache lifespan entre 10 e 12 horas caso seu site utilize nonces (números arbitrários). Por padrão, nonces são válidas por apenas 12 horas. Sendo assim, a configuração irá acionar o sistema de cache para que ele crie cópias dos arquivos depois de limpar os dados antigos, evitando nonces inválidas.
As políticas de cache, ou políticas de substituição, definem as regras quanto à forma do cache remover as cópias dos arquivos armazenadas em sua memória. Indicamos que faça testes com diferentes políticas de cache para encontrar uma que seja ideal para seu site.
First In, First Out (FIFO)
O algoritmo FIFO (primeiro a entrar, primeiro a sair) remove as primeiras entradas de dados que foram adicionadas, independentemente de quantas vezes o sistema de cache tenha acessado essas informações. O esquema FIFO se comporta como uma fila, onde os dados posicionados no topo dela são os primeiros a serem deletados.
Num sistema de cache que contém os itens A, B, C e D, o item A será aquele com dados cuja data de criação é a mais antiga. Se novos dados forem adicionados no armazenamento do cache, a política FIFO irá remover o item A para abrir espaço para os novos dados.
Abaixo exibimos uma ilustração de como esse processo funciona:

A política FIFO é ideal para sistemas em que os padrões de acesso de dados rodam progressivamente ao longo de todo o conjunto de dados. Isso acontece porque essa configuração garante que todas as entradas contidas no cache são novas e possuem mais chances de serem acessadas múltiplas vezes.
Last In, First Out (LIFO)
A política LIFO significa “último a entrar, primeiro a sair”, ou seja, ela remove do cache as entradas de dados que foram adicionadas mais recentemente. Em outras palavras, o esquema LIFO se comporta como uma pilha, ou um amontoado, em que os dados posicionados no final da lista são os primeiros a serem eliminados.
Em sistemas de cache contendo itens A, B, C e D, o item D é a entrada mais recente da lista. Sendo assim, o algoritmo LIFO irá remover os dados de D para acomodar um eventual item E.
Aqui está uma ilustração desse processo:

Com este padrão de comportamento, o LIFO pode ser a política de cache ideal para sites que tendem a acessar o mesmo conjunto de dados repetidamente. Isso porque o LIFO vai garantir que os dados mais frequentemente utilizados estarão sempre disponíveis no armazenamento em cache.
Least Recently Used (LRU)
A política LRU (utilizados menos recentemente) remove do cache os itens que não foram utilizados por mais tempo. Não confunda o LRU com o FIFO, já que o LRU leva em consideração os cache hits antes de remover os dados.
Abaixo indicamos como esta política de substituição de cache funciona:

A política de substituição LRU é ideal para sites que tendem a reutilizar dados recentes em um período de tempo relativamente curto. Esse algoritmo evita substituir os dados mais utilizados ao posicioná-los longe do topo da lista.
Most Recently Used (MRU)
O algoritmo MRU remove os itens acessados mais recentemente, mantendo os itens antigos em cache. De todo modo, o uso dessa política de cache pode ser complicado. Mesmo que um cache hit aconteça em entradas recentes, o MRU irá removê-las da próxima vez em que precisar liberar espaço para novas entradas.
Abaixo você confere como este sistema MRU de substituição de cache funciona:
A ilustração abaixo demonstra o processo:

Dito isto, este algoritmo de “utilizado mais recentemente” desempenha muito bem em certos casos. Por exemplo, o MRU ajuda a remover recomendações depois que clientes compram os produtos ou serviços que foram anteriormente recomendados a eles.
Outra dica para reduzir a ocorrência de cache misses é aumentar a sua memória principal (memória de acesso aleatório – RAM).
A memória do cache funciona através da cópia de dados da memória RAM, onde ficam armazenados os programas utilizados em tempo real pela CPU. Quanto maior a capacidade da memória RAM, mais dados ela consegue alojar.
Além disso, uma memória RAM grande ajuda a garantir que o cache não deixará de armazenar nenhum dado importante, o que resulta em menos ocorrências de falhas de cache.
O principal problema em expandir a memória RAM é o custo. Geralmente esse processo envolve o upgrade do plano de hospedagem web.
Vamos ver os planos cloud da Hostinger como exemplo. O plano Cloud Startup oferece 3 GB de RAM, já o plano Cloud Professional conta com uma memória RAM de 6 GB, enquanto o maior dos planos dessa categoria, o Cloud Enterprise, vem com 12 GB de memória RAM.
Na Hostinger, todos os nossos planos são escaláveis, ou seja, é simples sair de um plano e ir para outro maior. Independente do tipo de hospedagem que você escolher — seja Cloud, VPS ou host WordPress — o processo para ir de um plano para outro é muito rápido. Assim, você não precisa se preocupar com downtimes prolongados que podem tirar seu site do ar.
Descubra mais sobre a alocação de memória RAM do seu plano de hospedagem em nosso site. Além disso, nossa equipe de Sucesso do Cliente ficará feliz em te ajudar a entender mais detalhes sobre nossos planos de hospedagem.

O armazenamento em cache permite que sites e aplicativos web melhorem sua velocidade de carregamento e desempenho. As técnicas set-associative, fully-associative, e direct-mapped são três abordagens de mapeamento que os donos e gestores de sites podem utilizar para aproveitar os benefícios do sistema de cache.
Uma falha de cache, ou cache miss, acontece quando a informação solicitada pelo visitante não é encontrada no cache. Os diferentes tipos de cache miss incluem falhas compulsórias, conflitivas, de coerência e de capacidade.
É vital manter suas ocorrências de cache miss baixas, já que as penalidades tidas com altas taxas de falhas de cache podem prejudicar a experiência dos usuários e aumentar a taxa de rejeição do seu site. Vamos revisar rapidamente as formas de reduzir cache misses:
Esperamos que essas dicas sejam úteis. Mesmo assim, não hesite em deixar um comentário na seção abaixo caso ainda possua alguma questão referente à redução de cache misses.
Otimização de Sites: 10 Estratégias para Melhorar a Velocidade, UX e SEO + Dicas de Ferramentas
O Que é SEO? Conheça as Melhores Práticas para Chegar ao Topo dos Rankings
As 20 Melhores Ferramentas de Teste de Velocidade de Site
Todo o conteúdo dos tutoriais deste site segue os rigorosos padrões editoriais e valores da Hostinger.