Cache Miss y Cache Hit: Cuándo ocurren (y cómo aumentar la tasa de aciertos de caché)

Publicado: 2022-05-04

Optimizar el rendimiento de su sitio web sin una política sólida de almacenamiento en caché es como intentar construir una casa sobre arenas movedizas.

Puede usar los mejores materiales y herramientas, pero cuando su base no es sólida como una roca, siempre sentirá que algo obstaculiza su progreso.

Su política de almacenamiento en caché es la columna vertebral del rendimiento web excepcional de su sitio web. Si tiene un sistema de almacenamiento en caché adecuado, puede mejorar drásticamente la velocidad de su sitio.

Por el contrario, sin una buena configuración de almacenamiento en caché que funcione, las solicitudes de sus visitantes provocarán errores de caché, lo que a su vez ralentizará el tiempo de carga de su página.

Y la pérdida de caché es solo uno de los temas que se tratarán en las siguientes líneas junto con:

  • Una breve introducción al almacenamiento en caché;
  • ¿Qué es un Cache Miss?;
  • ¿Qué es un acierto de caché?;
  • ¿Qué es Cache Hit Ratio y cómo calcularlo?;
  • ¿Qué es una buena tasa de aciertos de caché?;
  • ¿Cómo aumentar la tasa de aciertos de caché?;
  • NitroPack: la forma más fácil de lograr una excelente tasa de aciertos de caché.

¡Vamos a empezar!

Una breve introducción al almacenamiento en caché

Antes de profundizar en el mundo de los aciertos y errores de caché, es fundamental comprender cómo funciona el almacenamiento en caché, para qué sirve y por qué se considera la mejor estrategia de optimización de velocidad.

Para comprender el almacenamiento en caché, debemos dar un paso atrás y seguir todo el proceso que se lleva a cabo detrás de escena cuando un visitante solicita su sitio.

Su sitio web está hecho de documentos HTML, archivos JavaScript y CSS, imágenes, etc. Todos están almacenados en su servidor de origen. Cuando alguien quiere visitar su sitio web, su navegador envía una solicitud a su servidor de origen, que a su vez envía una respuesta con todos los archivos necesarios.

como funciona la red

Cuando tiene 10 visitantes que solicitan simultáneamente los archivos de su sitio, no debería haber ningún problema y su servidor puede manejarlos con bastante facilidad.

Sin embargo, este modelo no funciona cuando 100.000 visitantes quieren visitar su sitio web.

Los servidores tienen un límite en la cantidad de solicitudes que pueden manejar simultáneamente, y cada solicitud después de ese límite entra en una cola, lo que resulta en tiempos de carga más prolongados para sus visitantes.

Cola

Ahí es donde entra el almacenamiento en caché.

En pocas palabras, el almacenamiento en caché es el proceso de guardar una copia de los datos de su sitio (HTML, CSS, JS, imágenes, etc.) en una ubicación diferente llamada caché web.

El caché web juega el papel de intermediario entre los usuarios y su origen. De esa manera, sus solicitudes se atienden desde el caché y no se recuperan de su servidor.

almacenamiento en caché

Como resultado, sus páginas se cargan mucho más rápido.

Puede encontrar numerosos tipos de clasificaciones de almacenamiento en caché. Pero para el propósito de este artículo, y para comprender cuándo ocurren los aciertos y errores de caché, echaremos un vistazo a los dos tipos más populares: almacenamiento en caché de navegador y proxy.


Almacenamiento en caché del navegador

Cada navegador tiene su propia política de almacenamiento en caché y puede almacenar datos localmente en la computadora de un usuario.

Eso es útil porque hace que la carga de una página visitada previamente sea increíblemente rápida. De hecho, el almacenamiento en caché del navegador es la razón principal por la que los botones de avance y retroceso pueden hacer su magia.

almacenamiento en caché del navegador

Desafortunadamente, el almacenamiento en caché del navegador se limita a operar por dispositivo. Pero su mayor ventaja es que puede guardar solicitudes de red completas, lo que lo convierte en imprescindible.


Almacenamiento en caché del servidor proxy

El almacenamiento en caché de proxy ayuda a aliviar la carga en el servidor y ofrece contenido relativamente más rápido a los usuarios finales. El mejor de los casos es cuando el almacenamiento en caché de proxy funciona de la mano con el almacenamiento en caché del navegador.

Los servidores proxy están distribuidos por todo el mundo. Suelen ser mantenidos por proveedores de CDN (Content Delivery Network).

Los proxies son intermediarios entre el usuario y su servidor de origen. Puede usarlos para almacenar contenido en caché en diferentes ubicaciones, y de esa manera, su contenido estará más cerca de los usuarios, reduciendo la latencia y el tráfico de red:

con CDN

A diferencia del almacenamiento en caché del navegador, el almacenamiento en caché del servidor proxy no está limitado por dispositivo y puede servir contenido simultáneamente a varios usuarios.

Esa es la esencia del almacenamiento en caché. Es un tema matizado, y hay mucho más por desarrollar: ventajas y desventajas de los diferentes tipos de almacenamiento en caché, cómo configurar reglas de almacenamiento en caché y más.

Pero ese no es el enfoque de este artículo.

Si desea profundizar más en el tema, puede consultar nuestro artículo: Web Caching 101: Guía para principiantes sobre el almacenamiento en caché HTTP (ejemplos, consejos y estrategias)

O mira nuestro video de YouTube:

Por ahora, es importante recordar que si los datos solicitados no se encuentran en su caché web, es cuando comienzan a ocurrir demoras y problemas. Esto nos lleva a un error de caché.


¿Qué es una señorita de caché?

Una falla de caché ocurre cuando un sistema, aplicación o navegador solicita recuperar datos del caché, pero esos datos específicos no se pueden encontrar actualmente en la memoria caché.

Cuando se produce un error de caché, la solicitud se reenvía al servidor de origen.

Una vez que los datos se recuperan del origen, se copian y almacenan en la memoria caché en previsión de futuras solicitudes similares de esos mismos datos.

Hay múltiples razones para que ocurra una pérdida de caché.

Por ejemplo, los datos específicos nunca se almacenaron en caché en primer lugar.

Supongamos que tiene un sitio de comercio electrónico y acaba de agregar una nueva página de producto. Todos los archivos de imágenes, HTML, CSS y JavaScript nunca se agregaron a la memoria caché porque nadie los solicitó. Eso significa que su primer visitante tendrá que enviar una solicitud a su origen para poder cargar la página. Después de la primera solicitud, los datos se transferirán a la memoria caché y se servirán desde ella.

Otra posibilidad de pérdida de caché es que los datos almacenados en caché se eliminaron en algún momento.

Nuevamente, hay varias cosas que podrían haber llevado a ese escenario: se necesitaba más espacio, una aplicación solicitó la eliminación o la política de tiempo de vida de los datos expiró.

Hablaremos más sobre Time to Live más adelante en el artículo.

Cualquiera que sea la razón, la verdad es que cada pérdida de caché conduce a una mayor latencia, tiempos de carga lentos, mala experiencia del usuario y visitantes insatisfechos.

Sin embargo, no quiero dejarlo con la impresión de que necesita lograr aciertos de caché el 100 % del tiempo. Eso no es realista.

Además, hay algunos casos en los que los errores de caché son necesarios, ya que es posible que deba asegurarse de que el contenido que publica esté siempre actualizado.

Por ejemplo, un sitio web de noticias como bbc.com puede cambiar el contenido de su página de inicio varias veces a lo largo del día, ya que se deben informar las últimas noticias. En este caso, un golpe de caché significa que sus lectores no vieron la última versión de su sitio web y, respectivamente, se perdieron las últimas noticias.

Por lo tanto, hay una ventaja en la ocurrencia de una pérdida de caché.

Sin embargo, si no tiene un sitio web de noticias y no cambia su contenido regularmente, debe tratar de mantener las fallas de caché lo más bajas posible y las coincidencias de caché lo más altas posible.


¿Qué es un acierto de caché?

Se produce un acierto de caché cuando los datos solicitados se entregan con éxito desde el caché.

Por ejemplo, si un usuario visita una de las páginas de su producto que se supone que debe mostrar una imagen del producto que vende, su navegador enviará una solicitud de esta imagen al caché (navegador o CDN). Si la CDN tiene una copia de la imagen en su almacenamiento, la solicitud da como resultado un golpe de caché y la imagen se envía de vuelta al navegador.


¿Qué es una tasa de aciertos de caché y cómo calcularla?

La proporción de aciertos de caché mide cuántas solicitudes ha entregado una caché con éxito desde su almacenamiento, en comparación con cuántas solicitudes recibió en total.

Una proporción de aciertos de caché alta significa que la caché ha cumplido con la mayoría de las solicitudes de los usuarios, lo que a su vez significa que experimentaron tiempos de carga más rápidos.

Puede calcular la proporción de aciertos de su caché usando esta fórmula:

Fórmula de proporción de aciertos de caché

Sin embargo, es posible que no sea necesario, ya que la mayoría de los proveedores de CDN lo calculan por usted.

El panel de control de NitroPack también muestra esta información:

NitroPack CHR


¿Qué es una buena tasa de aciertos de caché?

Como regla general, una tasa de aciertos de caché del 80 % o superior es un buen resultado , ya que significa que la mayoría de las solicitudes se atienden desde la caché.

Cualquier valor por debajo del 80 % en sitios web estáticos indica una política de almacenamiento en caché ineficiente.

Según Cloudflare, uno de los mayores proveedores de CDN del mundo:

"Un sitio web típico que se compone principalmente de contenido estático podría tener fácilmente una tasa de aciertos de caché en el rango de 95-99%".

La tasa global de aciertos de caché para NitroPack es del 90 %. Y aproximadamente el 70 % de todos los usuarios de NitroPack experimentan una tasa de aciertos de caché del 80 % o superior.


¿Cómo aumentar la tasa de aciertos de caché?

Puede tomar medidas específicas para reducir la cantidad de errores de caché y, por lo tanto, aumentar su índice de aciertos de caché.

1. Configure reglas de almacenamiento en caché según las necesidades de su sitio web

El encabezado de control de caché le permite establecer una miríada de reglas de almacenamiento en caché diferentes para optimizar la publicación de su contenido.

Algunas de las reglas incluyen:

  • no-store le dice a los cachés web que no almacenen ninguna versión del recurso bajo ninguna circunstancia;
  • no-cache le dice al caché web que debe validar el contenido almacenado en caché con el servidor de origen antes de entregarlo a los usuarios;
  • max-age establece la cantidad máxima de tiempo (en segundos) que el caché puede mantener el recurso guardado antes de volver a descargarlo o revalidarlo con el servidor de origen. Después de eso, el contenido se marca como obsoleto;
  • s-maxage hace exactamente lo mismo que max-age pero solo para cachés de proxy;
  • private le dice a los cachés web que solo los cachés privados pueden almacenar la respuesta;
  • public marca la respuesta como pública. Cualquier caché intermedio puede almacenar respuestas marcadas con esta instrucción;

Encabezado de control de caché

Debe establecer un tiempo de vida (cuánto tiempo la memoria caché retendrá sus datos antes de recuperar información actualizada del origen) que mejor se adapte a su contenido.

Por ejemplo, si un activo cambia aproximadamente cada dos meses, puede ser apropiado un encabezado de edad máxima de 50 días. Sin embargo, si el activo se cambia a diario, es posible que desee utilizar un encabezado sin caché .

Puede encontrar más información sobre los encabezados de control de caché, la actualización de caché y la validación en nuestro video de YouTube:

2. Ignorar parámetros UTM

La ejecución de varias campañas publicitarias (por ejemplo, anuncios de Facebook, anuncios de Google, etc.) genera diferentes URL con parámetros UTM específicos.

Como resultado, tiene una sola página con múltiples variaciones (diferentes parámetros UTM) que deben optimizarse.

Etiquetas UTM

Eso es un problema ya que cada variación de URL se considera un objeto único y cada solicitud se dirigirá al servidor de origen.

En consecuencia, cada solicitud se clasificará como una falta de caché, aunque el contenido solicitado estuviera disponible en la caché web.

Esto conduce a una proporción de aciertos de caché innecesariamente más baja.


NitroPack: la forma más fácil de lograr una excelente tasa de aciertos de caché

Después de todo lo que hemos cubierto, todo el proceso de lograr una alta proporción de aciertos de caché puede sonar un poco abrumador.

La buena noticia es que si está trabajando con un proveedor de CDN, es posible que la mayoría de las cosas que mencioné, como los encabezados de control de caché, ya se hayan solucionado.

Para todo lo demás, puede usar un complemento de almacenamiento en caché.

Por ejemplo, NitroPack viene con funciones listas para usar que garantizan una alta tasa de aciertos de caché de nuestros usuarios. Esto incluye:

  • Cache Warmup simulará visitas orgánicas a su sitio web, lo que lleva automáticamente a NitroPack a preparar versiones optimizadas (almacenadas en caché) de su sitio web para dispositivos móviles y de escritorio.
  • La invalidación de caché marca el contenido almacenado en caché como "obsoleto", pero lo sigue publicando hasta que esté disponible el nuevo contenido optimizado. Como resultado, sus visitantes siempre ven contenido optimizado, aunque puede estar desactualizado por un corto tiempo.
  • CDN incorporado, que elimina la necesidad de sincronizar su CDN con el complemento de almacenamiento en caché de su elección. A menudo, eso lleva mucho tiempo, es inconveniente y puede causar problemas inesperados.
  • Una opción de parámetro ignorado que permite que NitroPack ignore algunos parámetros UTM (y otros) de uso común de forma predeterminada para que no tenga que preocuparse al ejecutar sus campañas de marketing.

Prametros ignorados

Pero no tienes que creer en mi palabra. Pruebe NitroPack gratis y vea su impacto por sí mismo.