Влад Черевко Я захоплююся різноманітною електронікою та технологіями з початку 2000-х. Постійно відстежую світові технологічні новини і сам пишу матеріали на цю тематику. 28 серпня, 20:18 0
Компанія 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-кешів, що підвищить відсоток успішних звернень та знизить навантаження на авторитетні сервери.
Оригінал статті: mezha.ua
