
Глобалният доставчик на интернет инфраструктура Cloudflare освободи приблизително 100 TB RAM от своите ресурси, без да подменя нито един RAM модул или да преконфигурира физическия хардуер.
Инженерите на компанията просто преработиха структурата на DNS кеша на платформата Big Pineapple, която е в основата на публичната DNS услуга 1.1.1.1., съобщи Tom’s Hardware. След пет промени в кода на Rust, размерът на един кеширан DNS запис беше намален от 953 на 420 байта – с приблизително 56%.
В мащаба на Cloudflare това намаление представлява огромни спестявания: Big Pineapple съхранява едновременно над 250 милиарда DNS записа. Следователно, дори един допълнителен байт на запис струва на инфраструктурата над 250 GB RAM.
Над 15 TB бяха освободени чрез замяна на динамичните Vec и String контейнери на Rust със структури с фиксиран размер. След като данните попаднаха в кеша, нямаше нужда да се увеличава капацитетът, така че допълнителната памет на практика се изразходваше напразно.
Инженерите също така комбинираха три списъка с DNS записи в един буфер с двубайтови отмествания и елиминираха съхранението на дублиращи се имена на домейни. Самите данни сега се съхраняват в компактен мрежов формат със спецификация за дължина.
Преди това малък четирибайтов DNS запис тип А, например, можеше да заема същите 144 байта памет както значително по-големите записи.
Оптимизацията не само освободи памет, но и ускори услугата. Скоростта на добавяне на записи към кеша се увеличи с 43%. Латентността на търсенето намаля от 828 на 670 наносекунди.
Комбинираното въздействие на тези мерки даде на Cloudflare приблизително 100 TB свободна RAM памет – или почти колкото паметта на 130 сървъра Gen 13 със 768 GB DDR5-6400 RAM всеки. Като се има предвид високата цена на сървърната памет, тази оптимизация е особено полезна.
Cloudflare не възнамерява да премахва освободената памет от своите сървъри. Компанията планира да я използва, за да разшири своите DNS кешове.
Така повече заявки ще бъдат обслужвани директно от кеша, намалявайки необходимостта от достъп до авторитетни DNS сървъри. Това едновременно ще намали натоварването на мрежата и ще ускори обработката на DNS заявки.
