
Cloudflare ušetřil 100 TB RAM díky optimalizaci DNS cache
Cloudflare dokázal uvolnit přibližně 100 TB operační paměti změnou způsobu, jakým jeho servery ukládají DNS záznamy a zároveň zvýšil rychlost celého systému.
Chytřejší ukládání šetří obrovské množství paměti
Cloudflare provedl několik úprav v platformě Big Pineapple, která stojí za veřejným DNS resolverem 1.1.1.1. Výsledkem je zmenšení jednotlivých položek v DNS cache z původních 953 bajtů na pouhých 420 bajtů. Protože systém současně uchovává více než 250 miliard DNS záznamů, i úspora jediného bajtu má v celosvětovém měřítku obrovský dopad. Celkem se podařilo získat přibližně 100 TB RAM, aniž by bylo nutné měnit jediný fyzický paměťový modul. Cloudflare tím ušetřil množství paměti odpovídající zhruba 130 serverům vybaveným 768 GB DDR5.
Jedna z největších úspor vznikla nahrazením dynamických struktur. Ty nepotřebují ukládat informace o dodatečně rezervované kapacitě, která v případě DNS cache nemá praktické využití. Samotná tato změna přinesla úsporu více než 15 TB operační paměti.
Méně dat a efektivnější práce procesoru
Cloudflare dále sloučil několik seznamů DNS záznamů do jediného souvislého úložiště a jednotlivé části adresuje pomocí krátkých offsetů. Systém také přestal ukládat názvy domén, které se v odpovědích často opakují. Místo toho je dokáže při načítání záznamu znovu sestavit. Další úprava změnila způsob ukládání samotných DNS dat. Namísto rozsáhlých struktur se nyní používají kompaktní sekvence bajtů s informací o jejich délce. Menší záznamy tak nezabírají stejně velký prostor jako výrazně komplexnější typy záznamů.
Výsledkem není pouze nižší spotřeba RAM. Data uložená těsněji vedle sebe také lépe využívají procesorovou cache. Některé DNS záznamy proto může systém z paměti rovnou kopírovat do odpovědi bez nutnosti jejich opětovného sestavování.
Cloudflare zároveň zrychlil DNS resolver
Optimalizace přinesly výrazné zlepšení také po stránce výkonu. Rychlost vkládání záznamů vzrostla z přibližně 625 000 na 893 000 položek za sekundu. Průměrná latence při vyhledávání se současně snížila z 828 na 670 nanosekund. Během postupného nasazování změn od poloviny května do začátku července klesla paměťová náročnost jedné instance zhruba z 9,3 GB na 5,3 GB při sledování hodnoty p99.
Uvolněnou paměť Cloudflare znovu využije
Cloudflare ale neplánuje získanou RAM jednoduše ponechat nevyužitou. Společnost ji chce využít pro rozšíření DNS cache. Větší cache může uchovávat více záznamů, což zvyšuje pravděpodobnost nalezení odpovědi přímo na serverech 1.1.1.1. To zároveň znamená méně požadavků směrem k autoritativním DNS serverům a efektivnější provoz celé infrastruktury. Optimalizace softwaru tak Cloudflare umožnila získat kapacitu odpovídající desítkám serverů bez nákupu jediného nového paměťového modulu.



















