Cloudflare освободил 100 ТБ оперативной памяти в своём кэше DNS благодаря оптимизации хранения данных. Это не только снижает расходы на ресурсы, но и повышает производительность сервисов, что особенно актуально в условиях роста трафика.
Значение оптимизации
Платформа Big Pineapple, которая стоит за такими сервисами, как 1.1.1.1 и Gateway DNS, обрабатывает более 250 миллиардов записей DNS в кэше. Сохранение даже одного байта на каждую запись может сэкономить до 250 ГБ памяти. После пяти изменений в способе хранения записей в памяти, средний объем занимаемой памяти удалось сократить более чем на 50%.
Результаты и преимущества
В результате введенных изменений, производительность выросла: скорость вставки записей увеличилась на 43%, а задержка при обращении к кэшу уменьшилась на 19%. Использование более эффективных структур хранения данных, таких как Box<[T]> и Box<str> вместо Vec и String, позволило значительно снизить накладные расходы на память. Это является критически важным для центров обработки данных, работающих с высокой нагрузкой: при использовании EDNS Client Subnet кэш хранит несколько версий одного и того же ответа для разных сетей клиентов.
Практические выводы для разработчиков
Для разработчиков и системных администраторов такие оптимизации могут стать уроком в вопросах управления памятью и производительностью. Используя эти методы, компании могут сократить затраты и улучшить систему обработки DNS-запросов. При проектировании систем важно учитывать такие моменты, как избыточное распределение памяти и возможность изменения структуры хранения данных в зависимости от требований нагрузки.
Следующий шаг для Cloudflare — мониторинг внедренных улучшений и дальнейшая оптимизация, чтобы обеспечить еще более высокую устойчивость и производительность своих сервисов.