Cloudflare сэкономила 100 ТБ оперативной памяти благодаря оптимизации кода

Добавь сайт в закладки! Инструкция по ссылке.

+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Компания радикально оптимизировала 1.1.1.1

Cloudflare освободила около 100 ТБ оперативной памяти в своей глобальной серверной инфраструктуре без замены ни одной планки ОЗУ и без перенастройки физического оборудования. Инженеры компании просто изменили структуру DNS-кэша платформы Big Pineapple, которая является основой публичного DNS-сервиса 1.1.1.1.

Изображение сгенерировано GeminiИсточник изображения: Gemini

После пяти изменений в коде на Rust размер одной кэшированной DNS-записи удалось снизить с 953 до 420 байт — примерно на 56%. На уровне Cloudflare это приводит к значительной экономии: в Big Pineapple одновременно хранится более 250 миллиардов DNS-записей. Поэтому даже один лишний байт на каждую запись обходится инфраструктуре более чем в 250 ГБ оперативной памяти.

Более 15 ТБ удалось освободить после перехода от динамических контейнеров Rust Vec и String к структурам фиксированного размера. После попадания данных в кэш их объем уже не нужно было увеличивать, поэтому дополнительная память фактически использовалась впустую.

Инженеры также объединили три списка DNS-записей в общий буфер с двухбайтовыми смещениями, отказавшись от хранения дублирующихся доменных имен. Данные теперь хранятся в компактном сетевом формате с указанием длины. Ранее, например, небольшая четырехбайтовая DNS-запись типа A могла занимать в памяти те же 144 байта, что и значительно более крупные записи.

Оптимизация не только освободила память, но и увеличила скорость работы сервиса. Скорость добавления записей в кэш возросла на 43%. Задержка поиска снизилась с 828 до 670 наносекунд.

В результате предпринятых мер Cloudflare получила около 100 ТБ свободной оперативной памяти — примерно столько же, сколько установлено в 130 серверах поколения Gen 13 с 768 ГБ DDR5-6400 в каждом. На фоне высоких цен на серверную память такая оптимизация особенно актуальна.

При этом Cloudflare не планирует выводить освободившуюся память из серверов. Компания намерена использовать ее для увеличения DNS-кэшей. Это позволит обрабатывать больше запросов непосредственно из кэша, реже обращаясь к авторитетным DNS-серверам. Таким образом, это одновременно снизит сетевую нагрузку и ускорит обработку DNS-запросов.

Источник
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Поделись видео:
Подоляка