Зміст
Коротко
Платформа Big Pineapple за DNS-сервісами Cloudflare (зокрема 1.1.1.1) тримає понад 250 млрд записів кешу. П’ять послідовних правок розкладки в пам’яті на Rust зменшили слід одного запису більш ніж удвічі — з 953 до 420 байт. По флоту це близько 100 ТБ звільненої оперативної пам’яті; вставка в кеш прискорилася на 43%, затримка читання впала на 19%.
Що сталося
На холодному старті кеш порожній і заповнюється запитами до ліміту, після чого витісняють менш популярні записи. За EDNS Client Subnet той самий запит кешується в кількох варіантах — і кількість записів, і ціна байта зростають.
Кожен запис — ключ (ім’я, тип, теги) і значення з секціями відповіді плюс метадані (TTL, лічильник потраплянь). У продакшені збережену відповідь майже не змінюють, але типи на кшталт Vec<T> і String все одно несуть поле ємності й запас на купі. Заміна на Box<[T]> / Box<str> прибрала зайві вісім байт на поле й хвіст алокацій — близько 15 ТБ на всьому флоті.
Далі три списки секцій DNS звели в один із короткими зміщеннями u16. Власника запису, що збігається із запитаним ім’ям, перестали дублювати — його відновлюють із ключа. Великі варіанти enum даних винесли на купу, потім перейшли до зберігання корисного навантаження сирими байтами відповіді в одному буфері: краща локальність кешу процесора і менше серіалізації на шляху відповіді.
Чому це важливо
На масштабі «байт на запис × сотні мільярдів» мікрооптимізація структури даних стає економікою заліза: 100 ТБ — це приблизно 130 серверів покоління Gen 13 за оцінкою Cloudflare. При цьому швидкість не принесли в жертву: менше алокацій і щільніша пам’ять дали й економію, і прискорення.
Для команд поза DNS урок той самий: профілюйте не лише алгоритми, а й «мертву» ємність контейнерів, вирівнювання структур і розмір enum за найважчим варіантом. Бенчмарки на синтетиці плюс замір резидентної пам’яті в проді після поетапного викату — обов’язкова пара.
На практиці
- Якщо об’єкт після запису незмінний — розгляньте
Box<[T]>/Box<str>замістьVec/String. - Кілька маленьких списків з одним життєвим циклом часто дешевші як один буфер зі зміщеннями.
- У
enumз рідкісними важкими варіантами перевірте, чи не платите розміром рідкісних полів за кожен A-запис. - Сирі байти відповіді на гарячому шляху можуть бути швидшими за «гарне» розібране дерево — якщо рідкісні типи все ще розбираєте точково.
- Катіть по одній ідеї й дивіться 90-й і 99-й процентилі резидентної пам’яті: на графіку Cloudflare вона падала сходинками з травня по липень 2026.
Підсумок
Cloudflare показав, як серія нудних на вигляд правок розкладки кешу дає терабайти економії без жертви затримкою. Звільнену пам’ять планують вкласти в більший обсяг кешу — менше запитів угору по ієрархії DNS.

