(1 час назад), Редакция Рунет | 👁 468

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

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

«После пяти изменений в коде на Rust размер одной кэшированной DNS-записи удалось сократить с 953 до 420 байт — примерно на 56%», — сообщает IXBT News. На масштабе Cloudflare это дает огромную экономию: в Big Pineapple одновременно хранится более 250 млрд DNS-записей.

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

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

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

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

Подписывайтесь на наш Telegram-канал, чтобы быть в курсе всех новостей и событий Рунета.

Комментарии 0
Зарегистрируйтесь или , чтобы оставлять комментарии.
Читайте нас в удобном формате: