¿Qué es la tasa de aciertos de caché?

La tasa de aciertos de caché es la proporción de solicitudes que una caché responde a partir de una respuesta almacenada en lugar de reenviarlas al servidor de origen. Normalmente se calcula por solicitud y, a veces, por byte entregado. Las herramientas difieren en si contabilizan las solicitudes que no se pueden almacenar en caché y las respuestas revalidadas, por lo que dos tasas informadas solo son comparables cuando sus definiciones coinciden.

Cómo funciona la tasa de aciertos de caché

Un acierto significa que la caché atendió la solicitud con una respuesta almacenada sin reenviarla. El RFC 9211 estandariza cómo una caché informa de ello en cada respuesta mediante el encabezado Cache-Status: hit cuando la solicitud no se reenvió, o fwd con un motivo como uri-miss, vary-miss, stale o bypass cuando sí se reenvió. La tasa se calcula a partir del recuento de esos resultados durante un período y para un conjunto de solicitudes determinados. Tres factores la determinan principalmente: cuánto tiempo permanecen vigentes las respuestas, entre cuántas claves de caché distintas se reparte el mismo contenido y si un objeto se solicita con suficiente frecuencia en una ubicación de caché como para seguir almacenado cuando llega la siguiente solicitud. Las ubicaciones de borde llenan sus cachés por separado, por lo que la primera solicitud de un objeto en cada ubicación produce un fallo en la caché de esa ubicación; un nivel superior compartido puede responderla sin contactar con el servidor de origen.

Datos clave

  1. ¿Se incluyen en el denominador las solicitudes que no se pueden almacenar en caché? Depende de la herramienta. La métrica Cache hit rate de Amazon CloudFront solo cuenta las solicitudes que se pueden almacenar en caché y excluye POST, PUT y los errores, mientras que su informe de estadísticas de caché muestra los aciertos, los fallos y los errores como porcentajes de todas las solicitudes de los usuarios. Un artículo de ingeniería de Fastly sobre Varnish usa la definición más restringida, los aciertos divididos entre la suma de aciertos y fallos, y denomina cobertura de caché a la proporción de solicitudes que se pueden almacenar en caché. Comprueba el denominador antes de comparar dos paneles o establecer un objetivo.
  2. ¿Una respuesta revalidada cuenta como un acierto? No según el RFC 9211: una respuesta almacenada caducada cuya solicitud tuvo que reenviarse para validarla se informa como fwd=stale, incluso cuando el servidor de origen responde 304 y se reutiliza el cuerpo almacenado. Los proveedores aplican criterios distintos. Cache Analytics de Cloudflare cuenta las solicitudes revalidadas como atendidas por el servidor de origen en su vista Solicitudes, pero como atendidas por Cloudflare en su vista Transferencia de datos. El gráfico de estadísticas de caché de CloudFront no incluye los aciertos de actualización, su término para las solicitudes de objetos caducados que siguen en la caché de borde.
  3. ¿Solicitudes o bytes? Responden a preguntas distintas. Una tasa basada en solicitudes asigna el mismo peso a cada solicitud, tanto si transporta unos pocos bytes como muchos megabytes, y refleja con qué frecuencia un usuario debe esperar la respuesta del servidor de origen. Una tasa basada en bytes es la proporción de bytes entregados a los clientes que correspondieron a aciertos de caché. Un sitio cuyos archivos pequeños producen aciertos, pero cuyos archivos multimedia grandes producen fallos, puede mostrar una tasa alta por solicitudes y una tasa baja por bytes. Ambas tasas son proporciones, no cantidades: la mayoría de los proveedores de alojamiento facturan la salida de datos según los datos que envían sus servidores, y esa cantidad puede crecer con el tráfico mientras la tasa se mantiene estable. Para tomar decisiones sobre costos, evalúa la cifra basada en bytes junto con los bytes procedentes del servidor de origen. La vista Transferencia de datos de Cloudflare cuenta los datos transferidos en lugar de las solicitudes; el informe de estadísticas de caché de CloudFront proporciona BytesFromMisses, que AWS considera una buena aproximación de los bytes obtenidos del servidor de origen, pero que excluye los objetos caducados que seguían en la caché de borde.
  4. ¿Por qué es baja la tasa cuando las reglas de caché parecen correctas? Una vez descartados los períodos de vigencia de la caché, comprueba primero la fragmentación de las claves de caché. Cuando CloudFront almacena en caché según los parámetros de la cadena de consulta, guarda ?a=1&b=2 y ?b=2&a=1 como objetos separados. Lo mismo ocurre con las diferencias entre mayúsculas y minúsculas en los parámetros y con cada valor distinto de una cookie o un encabezado, como User-Agent, que se haya configurado como criterio de almacenamiento en caché. Además, una respuesta solo puede reutilizarse mientras siga almacenada y únicamente si está vigente, se ha revalidado correctamente con el servidor de origen o se permite servirla caducada, por ejemplo, bajo stale-while-revalidate o stale-if-error. Las cachés expulsan los objetos que se solicitan con poca frecuencia, y cada ubicación de borde llena su propia caché. Los períodos de vigencia más largos y un nivel superior de caché compartido, como CloudFront Origin Shield o Cloudflare Tiered Cache, reducen las solicitudes al servidor de origen.

Cuándo importa la tasa de aciertos de caché

Supervisa la tasa de aciertos cuando cada fallo implique latencia del origen, carga en el origen o procesamiento bajo demanda. Una tasa descendente puede indicar tiempos de vida en caché cortos o una fragmentación de la clave de caché por cadenas de consulta, cookies o encabezados de solicitud. Si la herramienta cuenta todas las solicitudes, es normal que el valor sea bajo para un tráfico que, en su mayor parte, no se puede almacenar en caché; si solo cuenta las solicitudes que admiten almacenamiento en caché, ese mismo tráfico puede seguir mostrando un valor alto.

Cómo ayuda Transloadit con la tasa de aciertos de caché

En Smart CDN de Transloadit, un fallo de caché implica más trabajo que en una CDN que solo almacena archivos existentes: importa el original y ejecuta tu Template, mientras que un acierto solo repite el paso de entrega desde el borde. La documentación del Robot /tlcdn/deliver describe la entrega desde la caché como una forma de reducir la latencia y el volumen de encoding, por lo que la tasa de aciertos de tus URL de Smart CDN afecta tanto a la latencia como al consumo. En las URL firmadas, la vigencia efectiva de la caché está limitada por el tiempo de vigencia restante de la firma, por lo que un exp más corto reduce la reutilización.

Las páginas enlazadas aquí no definen un informe de tasa de aciertos ni indican qué solicitudes contabilizaría. La descripción general de Smart CDN sugiere comprobar los encabezados de respuesta de la caché durante la depuración; si calculas una tasa a partir de ellos, registra tu propia definición de acierto.

Explora las capacidades de entrega de Transloadit

Fuentes

Convierte tus conocimientos sobre multimedia en un pipeline funcional

Conecta las subidas, el procesamiento, la IA, el almacenamiento y la entrega mediante una sola API declarativa, mientras nos encargamos por ti del stack de encoding, el escalado y los cambios constantes de formatos.

Prueba Transloadit gratis