Автор: Влад Черевко Цікавлюся різного роду електронікою і технологіями з початку 2000-х. Регулярно стежу за технологічними новинами світу і сам пишу матеріали про це.
Категорії: Технології, Cloudflare, Пам’ять, Хмарні сервіси

Компанія Cloudflareповідомилапро значну економію ресурсів у своїй глобальній інфраструктурі, звільнивши близько 100 терабайтів оперативної пам’яті без зміни фізичних модулів у серверах. Це стало можливим завдяки переробці структури збереження записів у DNS-кеші сервісу 1.1.1.1. Про цепишеTom’s Hardware.
За словами інженера систем компанії Себастіана Нойтебума, у платформі Big Pineapple було реалізовано 5 змін на рівні мови програмування Rust. У результаті кожен кешований запис скоротився з 953 байтів до 420 байтів. Це дозволило не лише зменшити обсяг пам’яті, а й підвищити швидкість роботи: продуктивність вставки записів зросла на 43%, а затримка пошуку знизилася на 19%.
Масштаб кешу в Big Pineapple є колосальним — понад 250 мільярдів DNS‑записів зберігаються там одночасно. Тому навіть один зайвий байт у кожному записі коштує компанії понад 250 ГБ пам’яті. Оптимізація структури дала змогу уникнути цього надлишкового навантаження.
Звільнена пам’ять еквівалентна обсягу DDR5 у 130 серверів Cloudflare 13-го покоління, кожен з яких оснащений 768 ГБ оперативної пам’яті. В умовах зростання цін на серверну DDR5, які можуть подвоїтися протягом року, компанія розглядає оптимізацію як стратегічний крок.
Одним із ключових рішень стало заміщення контейнерів Rust типу Vec та String на фіксовані масиви, що дозволило уникнути зберігання невикористовуваних полів і зекономити понад 15 ТБ пам’яті. Також було об’єднано три списки записів у кожній DNS-відповіді в один буфер з індексацією за двобайтовими зміщеннями. Дубльовані імена доменів тепер відновлюються під час читання, а не зберігаються окремо.
Ще одне нововведення — збереження даних записів у вигляді довжино-префіксованих байтів у форматі “на дроті”. Це дозволило уникнути ситуації, коли невеликий запис типу А займав стільки ж місця, як і найбільший запис типу NAPTR, який кешує Cloudflare. Такий підхід також покращив локальність кешу процесора, адже більшість записів тепер копіюються безпосередньо з буфера у вихідні відповіді.
За результатами тестів Cloudflare, швидкість вставки досягла 893 тисяч записів на секунду проти попередніх 625 тисяч, а затримка пошуку скоротилася з 828 до 670 наносекунд. Під час розгортання змін, що тривало з середини травня до початку липня, середній обсяг резидентної пам’яті на інстанс знизився з 9,3 ГБ до 5,3 ГБ.
Це вже другий масштабний проєкт оптимізації пам’яті за останній рік. У вересні того року компанія завершила переписування шару обробки запитів FL2 на Rust.
Cloudflare наголошує, що звільнені ресурси не будуть використані для зменшення конфігурацій серверів, а спрямовуватимуться на розширення DNS-кешів, що підвищить частку успішних звернень і зменшить навантаження на авторитетні сервери.




