Cloudflare економить 100 ТБ RAM: розкрито секрет оптимізації DNS-кешу

Cloudflare звільняє 100 ТБ пам’яті завдяки геніальній оптимізації DNS-кешу
Провідний постачальник інфраструктури для інтернету, компанія Cloudflare, оголосила про вражаюче досягнення: їй вдалося заощадити приблизно 100 терабайтів оперативної пам’яті у своїй глобальній мережі. Це стало можливим не через заміну обладнання, а завдяки ретельній оптимізації структури зберігання даних у DNS-кеші свого швидкісного сервісу 1.1.1.1. Про це повідомляє видання Tom’s Hardware.
Деталі інноваційного підходу
За словами Себастіана Нойтебума, інженера систем Cloudflare, команда розробила п’ять ключових змін у програмній платформі Big Pineapple, написаній мовою програмування Rust. Ці вдосконалення дозволили скоротити обсяг пам’яті, необхідний для зберігання кожного DNS-запису, з 953 байтів до 420 байтів. Такий крок не тільки звільнив величезний обсяг оперативної пам’яті, але й суттєво прискорив роботу сервісу: ефективність вставки нових записів зросла на 43%, а час реакції при пошуку скоротився на 19%.
Масштаб оптимізації
Обсяг кешованих даних у системі Big Pineapple вражає – понад 250 мільярдів DNS-записів зберігаються одночасно. Це означає, що навіть незначна економія одного байту на кожному записі призводить до колосальної економії понад 250 ГБ пам’яті. Таким чином, оптимізація структури даних стала надзвичайно ефективним рішенням для уникнення непотрібного навантаження на ресурси.
Звільнений обсяг оперативної пам’яті еквівалентний загальному обсягу DDR5 пам’яті, встановленої на 130 серверах Cloudflare 13-го покоління, кожен з яких має по 768 ГБ RAM. Зважаючи на стрімке зростання цін на серверну DDR5 пам’ять, яка може подвоїтися протягом року, Cloudflare розглядає цю оптимізацію як стратегічно важливий крок для збереження операційних витрат.
Технічні аспекти вдосконалень
- Заміна структур даних: Одним із ключових рішень стало використання фіксованих масивів замість стандартних контейнерів Rust типу
VecтаString. Це дозволило уникнути зберігання невикористовуваних полів даних, заощадивши понад 15 ТБ пам’яті. - Оптимізація списків записів: Три окремі списки записів у кожній DNS-відповіді були об’єднані в один загальний буфер. Індексація тепер здійснюється за допомогою двобайтових зміщень, а дубльовані доменні імена відновлюються під час читання, а не зберігаються окремо.
- Формат “на дроті”: Дані записів тепер зберігаються у форматі “на дроті” (on-the-wire) з використанням байтів, що вказують на довжину. Це усунуло ситуацію, коли короткий запис типу A займав стільки ж місця, скільки й найбільший запис типу NAPTR. Такий підхід також покращив локальність кешу процесора, оскільки більшість записів копіюються безпосередньо з буфера у вихідні відповіді.
Результати та плани
Тестування показало значне покращення показників: швидкість вставки даних зросла з 625 тисяч до 893 тисяч записів за секунду, а середня затримка при пошуку скоротилася з 828 до 670 наносекунд. Під час розгортання цих змін, яке тривало з середини травня до початку липня, середній обсяг резидентної пам’яті на один екземпляр сервісу знизився з 9,3 ГБ до 5,3 ГБ.
Це вже другий масштабний проєкт оптимізації використання пам’яті за останній рік. Минулого вересня компанія завершила повне переписування шару обробки запитів FL2 на мову Rust.
Cloudflare підкреслює, що звільнені ресурси не будуть використані для скорочення конфігурацій серверів. Натомість, вони будуть спрямовані на розширення DNS-кешів, що, у свою чергу, збільшить відсоток успішних звернень до кешованих даних та зменшить навантаження на авторитетні DNS-сервери.
Порада від Business News:
Ця новина демонструє, наскільки важливим є глибоке розуміння технічних аспектів та постійне прагнення до оптимізації. Для будь-якого бізнесу, що залежить від технологій, подібні підходи до ефективного використання ресурсів можуть призвести до суттєвої економії коштів та підвищення продуктивності. Cloudflare показує приклад, як інноваційні програмні рішення можуть мати прямий вплив на операційні витрати та надавати конкурентну перевагу.
Дізнатися більше на: mezha.ua
