

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