lunes, agosto 31, 2026
lunes, agosto 31, 2026

Lo más visto

spot_img

RElacionado

Cloudflare libera 100 TB de RAM sin cambiar un solo servidor: solo tuvo que optimizar su caché DNS

Cloudflare ha conseguido liberar alrededor de 100 TB de memoria RAM en la infraestructura que sostiene su servicio DNS público 1.1.1.1. Lo más llamativo de todo es que no ha tenido que actualizar el hardware. Y es que todo el ahorro procede de una serie de optimizaciones en la forma en la que su plataforma Big Pineapple almacena las entradas de la caché DNS en memoria.

La magnitud del ahorro se entiende mejor al conocer la escala del servicio. Big Pineapple, que además de 1.1.1.1, alimenta servicios como Gateway DNS, DNS Firewall o AS112. Esto hace que almacene 250.000 millones de entradas DNS de forma simultánea. Con semejante volumen, desperdiciar solamente 1 byte por entrada supone consumir más de 250 GB de RAM adicionales en toda la infraestructura.

Cloudflare redujo en un 56% la memoria que ocupa cada entrada DNS

Cloudflare libera 100 TB de RAM optimizando DNS

Los ingenieros de Cloudflare realizaron cinco grandes optimizaciones sobre el código escrito en Rust. Una de las primeras consistió en sustituir estructuras dinámicas como Vec o String por estructuras de tamaño fijo como Box<[T]> y Box<str> cuando los datos ya no necesitaban crecer una vez almacenados en la caché. Solo este cambio permite eliminar información de capacidad innecesaria y ahorrar 64 bytes por entrada, además de reducir memoria reservada pero nunca utilizada. A escala global, Cloudflare calcula que únicamente esta modificación supone más de 15 TB de RAM.

También se reorganizó la estructura interna de las respuestas DNS. En lugar de mantener las secciones de respuesta, autoridad e información adicional en listas independientes, Cloudflare las combina en una única estructura utilizando pequeños desplazamientos para identificar cada sección. Cloudflare también eliminó información redundante, como el nombre del dominio propietario de un registro cuando coincide con el dominio original de la consulta, algo que ocurre en una gran parte de las respuestas DNS.

Otra fuente importante de desperdicio estaba en los enum utilizados por Rust para representar los distintos tipos de registros DNS. El tamaño de estas estructuras queda determinado por su variante más grande, provocando que registros muy pequeños como IPv4 o IPv6 reservaran mucha más memoria de la necesaria. Cloudflare acabó almacenando buena parte de los registros directamente en un buffer compacto utilizando el formato binario DNS, reduciendo asignaciones de memoria y mejorando además la localidad de datos en la caché de la CPU.

De 953 a 420 bytes por entrada y una caché DNS aún más rápida

Cloudflare libera 100 TB de RAM

El resultado conjunto de estas optimizaciones es considerable. En los benchmarks internos de Cloudflare, cada entrada de la caché pasó de ocupar aproximadamente 953 bytes a solamente 420 bytes, lo que supone una reducción del 56%. La memoria realmente asignada por entrada también cayó desde aproximadamente 1,1 KB hasta 461 bytes, una reducción cercana al 58%.

El ahorro tampoco llegó a costa del rendimiento. Al reducir el número de asignaciones de memoria y almacenar los datos de forma más contigua, el rendimiento de inserción en la caché aumentó un 43%, pasando de unas 625.000 a 893.000 entradas por segundo. Al mismo tiempo, la latencia de búsqueda bajó en un 19%, desde aproximadamente 828 hasta 670 nanosegundos.

En producción, el consumo de memoria de las instancias situadas en el percentil 99 cayó de 9,3 GB a 5,3 GB, mientras que en el percentil 90 pasó de 6,5 a 3,8 GB. Ahorrar 100 TB de RAM es un hito para la infraestructura de Cloudflare. Y más en un momento donde cualquier mejora implica adquirir una memoria RAM que prácticamente escasea. Esto le permitirá aumentando su infraestructura sin necesidad de adquirir tanta memoria RAM.

La entrada Cloudflare libera 100 TB de RAM sin cambiar un solo servidor: solo tuvo que optimizar su caché DNS aparece primero en El Chapuzas Informático.

 

n-d.mx