Por Canuto  

Cloudflare recuperó alrededor de 100 TB de RAM en su red global al reducir casi a la mitad el tamaño de las entradas DNS de 1.1.1.1, una mejora de software que también elevó la velocidad de inserción y redujo la latencia de búsqueda.
***

  • Las entradas de la caché pasaron de 953 a 420 bytes, según el análisis técnico de Cloudflare.
  • La compañía reportó un aumento del rendimiento de inserción de 625.000 a 893.000 entradas por segundo.
  • La memoria recuperada se destinará a ampliar las cachés DNS y mejorar sus tasas de acierto.


Cloudflare asegura que recuperó alrededor de 100 TB de RAM en toda su flota global sin sustituir ni reconfigurar físicamente los módulos de memoria de sus servidores. La compañía consiguió el ahorro al rediseñar, mediante cambios en Rust, la forma en que su plataforma Big Pineapple organiza cada entrada de la caché DNS del resolver 1.1.1.1. El resultado redujo el tamaño promedio de una entrada de 953 a 420 bytes y, al mismo tiempo, mejoró el desempeño de las operaciones más importantes.

La magnitud del ajuste se explica por la escala del servicio. Big Pineapple mantiene 250.000 millones de entradas DNS en caché de forma constante, por lo que un solo byte innecesario por entrada representa 250 GB de memoria consumida en la flota. Cloudflare detalló el proceso en una publicación técnica firmada por el ingeniero de sistemas Sebastiaan Neuteboom, donde presentó cinco modificaciones dirigidas a eliminar espacio desperdiciado y aprovechar mejor la memoria del procesador.

Una reducción construida desde el software

El primer cambio sustituyó los contenedores Vec y String, que pueden reservar capacidad adicional en Rust, por porciones en caja de tamaño fijo. Una vez que los datos llegan a la caché, esa capacidad de crecimiento deja de ser necesaria, de modo que eliminarla permitió ahorrar por sí sola más de 15 TB de RAM. La modificación atacó una ineficiencia estructural, no una reducción de la información que el resolver necesita conservar.

Las siguientes optimizaciones reorganizaron las respuestas DNS para evitar estructuras duplicadas. Cloudflare combinó las tres listas de registros que existían en cada respuesta dentro de un único búfer, cuyos elementos se localizan mediante desplazamientos de 2 bytes, y dejó de almacenar los nombres de propietario que repetían el dominio consultado. En lugar de guardar esos nombres, el sistema los reconstruye cuando necesita leer la información.

El último ajuste importante almacenó los datos de los registros como bytes en bruto, en el formato utilizado por el protocolo, junto con un prefijo de longitud. Ese diseño reemplazó una estructura en la que un registro A de apenas 4 bytes podía ocupar los mismos 144 bytes asignados al tipo de registro más grande que Cloudflare conserva en caché, el NAPTR, que aparece con mucha menor frecuencia.

El almacenamiento contiguo también favoreció la localidad de la caché de CPU, porque los datos relacionados quedan juntos en memoria y requieren menos trabajo para ser procesados. Como consecuencia, la mayoría de los tipos de registro ahora pueden copiarse directamente desde el búfer almacenado hasta las respuestas salientes, en lugar de serializarse nuevamente campo por campo. El ahorro de espacio, por tanto, llegó acompañado de una ruta de lectura más eficiente.

Más capacidad y menor latencia

Los resultados publicados por Cloudflare muestran que el rendimiento de inserción subió de 625.000 a 893.000 entradas por segundo después de aplicar los cambios. La cifra representa un incremento de 43%, mientras que la latencia de búsqueda cayó de 828 a 670 nanosegundos, una reducción de 19% en una operación que se repite a gran escala.

Durante el despliegue, realizado desde mediados de mayo hasta principios de julio, la memoria residente p99 por instancia descendió de 9,3 GB a 5,3 GB. Esta métrica refleja el extremo superior del consumo observado y permite apreciar que la reducción no dependió únicamente de casos aislados o de una carga excepcionalmente baja. La diferencia se produjo mientras el sistema continuaba atendiendo su función habitual de resolver consultas DNS.

En términos de hardware, la RAM recuperada equivale a la memoria DDR5 combinada de 130 servidores Gen 13 de Cloudflare, cada uno equipado con 768 GB de DDR5-6400. La comparación muestra por qué pequeños cambios en una estructura de datos pueden tener consecuencias financieras y operativas considerables cuando se replican cientos de miles de millones de veces.

El contexto del mercado de memoria vuelve más relevante la decisión. Cloudflare eligió en marzo una configuración de 768 GB para sus servidores Gen 13 después de cotizar una alternativa de 1.152 GB, que descartó en parte debido a los elevados precios de la memoria, mientras los costos de la DDR5 para servidores avanzan hacia una duplicación anual, según el reporte de Tom’s Hardware.

La memoria volverá a la caché DNS

Cloudflare no planea convertir la recuperación en una configuración de hardware más pequeña ni retirar módulos de sus servidores. La empresa pretende reinvertir la memoria disponible en cachés DNS más grandes, una estrategia que puede elevar las tasas de acierto y reducir la cantidad de consultas que el resolver envía a servidores autoritativos externos.

Una caché DNS guarda respuestas durante un periodo determinado para evitar que cada solicitud tenga que recorrer nuevamente la infraestructura de nombres de dominio. Cuando una respuesta permanece disponible localmente, el servicio puede contestar con mayor rapidez y disminuye la presión sobre los servidores autoritativos que gestionan la información original. Por eso, la memoria liberada no representa solo un ahorro contable, sino también espacio para ampliar la capacidad de respuesta.

El proyecto constituye el segundo gran esfuerzo de recuperación de memoria que Cloudflare completa en el último año. En septiembre pasado, la compañía había reescrito en Rust su capa de manejo de solicitudes, conocida como FL2, dentro de una estrategia más amplia de optimización de software y uso cuidadoso de los recursos disponibles.

La eficiencia también ha influido en decisiones anteriores de infraestructura. Para sus servidores Gen 12, Cloudflare optó por procesadores AMD EPYC 9684X de 96 núcleos, y la empresa ha presentado esas elecciones como parte de una búsqueda sostenida de mayor rendimiento por unidad de hardware. En el caso de Big Pineapple, el ahorro demuestra que la arquitectura de memoria puede ser tan decisiva como la capacidad bruta instalada.

Una lección para servicios de escala global

El caso de 1.1.1.1 ilustra una tensión habitual en los servicios de infraestructura: guardar más información puede mejorar la disponibilidad inmediata, pero cada byte adicional se multiplica por el tamaño de la red. Con 250.000 millones de entradas activas, decisiones aparentemente menores, como reservar capacidad no utilizada o repetir un nombre, terminan consumiendo cientos de gigabytes o incluso terabytes.

El rediseño también muestra que la optimización no consiste necesariamente en eliminar datos útiles. Cloudflare conservó los registros necesarios para responder las consultas, pero modificó sus contenedores, redujo duplicaciones y aplazó la reconstrucción de ciertos campos hasta el momento de la lectura. Esa combinación permitió compactar la representación sin sacrificar la función central de la caché.

Los avances de rendimiento tienen especial importancia en un resolver que opera como una pieza intermedia de Internet. Cada inserción incorpora una respuesta que podrá atender consultas futuras, mientras cada búsqueda determina la rapidez con que el sistema devuelve esa información al usuario o a una aplicación. Mejorar ambas operaciones puede reducir costos de infraestructura y elevar la capacidad de absorber demanda sin añadir inmediatamente más servidores.

La compañía todavía tendrá que decidir cómo distribuir la memoria recuperada entre regiones, instancias y tamaños de caché, pero su objetivo declarado es ampliar el almacenamiento de respuestas DNS. El episodio deja una conclusión clara: en plataformas que procesan cantidades masivas de datos, un byte no es una unidad insignificante, sino una decisión de infraestructura que puede multiplicarse hasta convertirse en cientos de gigabytes.


Imagen original de DiarioBitcoin, creada con inteligencia artificial, de uso libre, licenciada bajo Dominio Público.

Este artículo fue escrito por un redactor de contenido de IA y revisado por un editor humano para garantizar calidad y precisión.


ADVERTENCIA: DiarioBitcoin ofrece contenido informativo y educativo sobre diversos temas, incluyendo criptomonedas, IA, tecnología y regulaciones. No brindamos asesoramiento financiero. Las inversiones en criptoactivos son de alto riesgo y pueden no ser adecuadas para todos. Investigue, consulte a un experto y verifique la legislación aplicable antes de invertir. Podría perder todo su capital.

Suscríbete a nuestro boletín