
Cloudflare скорочує час перебудови DNS-зон удвічі та використання RAM на 85%
Інженери Cloudflare оптимізували перебудову DNS-зон: медіанний час збірки скоротився з 7,7 до 3,3 секунди, а використання RAM серверів Zone Builder зменшилося на 85%, з обсягу від 50 до 79 ГБ до близько 7 ГБ.
Cloudflare повідомляє, що її інженери оптимізували служби перебудови DNS-зон, скоротивши час перебудови удвічі та використання пам'яті на 85% у всій мережі. Ця робота продовжує попереднє зменшення споживання пам'яті та стосується DNS-флоту, який обробляє 800 змін зон за секунду.
Передумови та масштаб
DNS-флот Cloudflare обробляє 800 змін зон за секунду, тоді як чотири роки тому це було 250. DNS-зона містить записи, налаштування та метадані домену, зокрема IP-адреси, імена хостів, текстові рядки, піддомени, перенаправлення, а також дані про спам або сертифікати. Компанія каже, що узгодженість треба підтримувати на тисячах DNS-серверів, а в деяких доменів є понад 20 мільйонів записів. Раніше інженери знайшли 100 ТБ економії пам'яті в DNS-кеші та ще 100 ТБ завдяки покращенню маршрутизації серверів завдань. У 2022 році компанія вже оптимізувала оновлення записів, змінюючи лише потрібні дані.
Часткові перебудови для налаштувань
Раніше оновлення налаштувань вимагали повних збірок. Інженери додали причини та додаткову інформацію до подій зміни зони, що дозволило класифікувати ці події. Конкретні зміни налаштувань тепер можуть використовувати менші збірки. Зміни apex і метаданих, наприклад Universal SSL, утворюють один тип. Зміна nameserver домену або підстановочних знаків запускає іншу меншу процедуру. Повні збірки залишаються для випадків без механізму часткової збірки. Домени з великою кількістю записів тепер оновлюються частинами. Компанія повідомляє про зниження використання RAM на серверах Zone Builder на 85%, з обсягу від 50 до 79 ГБ до близько 7 ГБ, переважно завдяки цим змінам.
Планувальник і паралельність
Друга оптимізація об'єднала в один два окремі планувальники: планування та виконання. Новий планувальник виявляє кілька змін, що стосуються однієї зони, і об'єднує їх. Cloudflare використовує Apache Kafka для обміну подіями. Раніше, коли повідомлення запускало повільну збірку, планувальник чекав завершення цього завдання і не обробляв запити, що надходили тим часом, бо Kafka просуває повідомлення послідовно. Тепер він підтверджує та запускає менші завдання, що надходять у цей час. Запити виконуються невдовзі після надсилання у стабільному ритмі, а не пакетами після довгої черги. Команда також скоротила інтервали обробки черги. Медіанний час збірки знизився з 7,7 до 3,3 секунди.
Джерела: Tom's Hardware
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.