MYBIGGAMING
LIVE
Agothic
Железо 29 августа 2026 3 мин

Cloudflare освободила 100 ТБ оперативной памяти в DNS-сервисе Big Pineapple

Компания Cloudflare реализовала пять оптимизаций данных структур в своём DNS-сервере Big Pineapple, что позволило сэкономить более 100 ТБ оперативной памяти и увеличить скорость обработки запросов.
Автор: Гика PC
Cloudflare освободила 100 ТБ оперативной памяти в DNS-сервисе Big Pineapple

Компания Cloudflare объявила о завершении масштабной оптимизации своего программного обеспечения Big Pineapple, которое лежит в основе публичного DNS-сервиса 1.1.1.1. Инженеры заменили часть данных структур на языке Rust и переработали хранение записей, что позволило сэкономить более 100 терабайт оперативной памяти по всей инфраструктуре при одновременном ускорении работы кэша.

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

Для решения этих проблем разработчики внедрили пять ключевых изменений. Во-первых, переменные структуры заменили на фиксированные Box, что дало экономию 64 байта на каждой записи DNS. Во-вторых, объединили ранее разрозненные списки ответов, авторитетных и дополнительных секций в одну общую структуру с использованием небольших смещений (offsets), вместо того чтобы хранить отдельные указатели для каждой части.

Третье изменение касалось удаления избыточных данных. Имя владельца записи часто совпадает с запрошенной доменной областью, поэтому его можно реконструировать из ключа кэша, не храня дубликат. Четвертое и пятое изменения связаны с переработкой хранения самих записей DNS: крупные данные вынесли на кучу (heap), а затем начали хранить их почти в том же формате, как они приходят по сети (wire format), чтобы минимизировать лишние преобразования.

Результаты измерений подтверждают эффективность этих шагов. Потребление памяти на одну запись снизилось с 953 до 420 байт (-56%). Количество выделений памяти (allocations) уменьшилось с 1,1 КБ до 461 байта (-58%). При этом производительность выросла: скорость добавления записей в кэш увеличилась на 43% (с 625 тыс. до 893 тыс. операций в секунду), а задержка поиска снизилась с 828 наносекунд до 670 наносекунд (-19%).

В масштабах всей инфраструктуры эти изменения привели к высвобождению примерно 100 терабайт оперативной памяти. Для сравнения, это эквивалентно объему памяти примерно 130 серверов архитектуры Gen-13. Важно отметить, что оптимизация не была сделана за счет скорости — система стала быстрее и компактнее одновременно.

Rollout обновлений начался 18 мая 2026 года и завершился 6 июля. Опубликованные данные от 27 августа отражают работу системы в реальном производстве, а не только результаты лабораторных тестов. Высвобожденная память позволит увеличить емкость кэша, что снизит количество запросов к авторитетным DNS-серверам и ускорит ответы для пользователей.

Этот случай демонстрирует, что значительный прирост производительности в дата-центрах часто достигается не за счет покупки новых процессоров или увеличения частоты памяти, а благодаря тщательной оптимизации кода и структур данных. Экономия 533 байта на одной записи кажется ничтожной, но умноженная на более чем 250 миллиардов записей в кэше, она дает колоссальный результат.

Автор материала

Гика

Быстрые действия