Cloudflare, 1.1.1.1 DNS önbelleğinde 100 TB RAM boşalttı
Cloudflare, Big Pineapple DNS platformunda 1.1.1.1 önbellek yapısını yeniden tasarlayarak her kayıt için belleği yüzde 56 azalttı, toplamda yaklaşık 100 TB çalışma seti RAM’i serbest bıraktı.
Cloudflare, 1.1.1.1 çözümleyicisindeki DNS önbellek temsilini elden geçirerek her bir önbellek girdisinin bellek kullanımını yüzde 56 oranında küçülttü ve altyapı genelinde yaklaşık 100 TB çalışma seti belleği boşalttı. Bu iyileştirmeler, şirketin DNS platformu Big Pineapple üzerinde yapıldı ve ölçümlere göre önbellek ekleme verimini yüzde 43 artırırken sorgu yanıt gecikmesini yüzde 19 düşürdü. Big Pineapple aynı anda 250 milyardan fazla DNS önbellek girdisi tutabiliyor; bu ölçekteki bir optimizasyon, küçük başlık maliyetlerinin bile toplamda çok büyük etki yapmasına yol açıyor.
Cloudflare ekibi, önce Rust tarafında beş ardışık düzen değişikliğine gitti. Değişikliklerden biri, değişmez veriler için Vec ve String kullanımını Box<[T]> ve Box<str> ile değiştirmek oldu. Bu, her giriş başına 64 bayt tasarruf sağladı ve toplamda 15 TB’den fazla belleği geri kazandırdı. Aynı süreçte farklı kayıt bölümleri tek bir liste altında toplandı, ofsetler daha sıkı paketlendi, Boolean bayraklar bitflags içine sıkıştırıldı ve bazı durumlarda, sorgu alan adıyla aynı olan kayıt sahip adları tamamen saklanmayıp önbellek anahtarından yeniden kurulur hale getirildi.
Ekip, büyük Rust enum varyantlarını box’layarak yığındaki alanı azaltmayı da denedi, ancak ek bellek tahsislerinin yerellik üzerinde olumsuz etki yaptığını gözlemledi. Bunun üzerine tasarım daha köklü şekilde değiştirildi. Son haliyle DNS kayıt verileri DNS wire formatında, tek bir bitişik bayt tamponunda tutuluyor. Böylece enum gövdesi ve her kayıt için ayrı ayrı tahsis edilen nesnelerin ek yükü ortadan kalkarken, bellek yerelliği de iyileşmiş oldu.
Bu yapı, sık kullanılan bazı kayıt tiplerinin doğrudan yanıta kopyalanmasına izin veriyor. Ancak alan adı içeren kayıtlar için, DNS name compression kuralları nedeniyle bu adların yanıt oluşturulurken hâlâ ayrıştırılması gerekiyor. Cloudflare’ın önbellek mimarisi, Unbound ve PowerDNS Recursor gibi çözümlerden farklı olarak, birden fazla önbellek türü ve yapısı yerine tek tek her girişin başlık maliyetini azaltmaya odaklanıyor.
Optimizasyonlar 18 Mayıs ile 6 Temmuz 2026 arasında üretim ortamına kademeli olarak yayıldı. Yayılım tamamlandığında, bir örnek başına p99 yerleşik bellek kullanımı 9.3 GB’den 5.3 GB’e, p90 ise 6.5 GB’den 3.8 GB’e indi. Kıyaslamalar, her girişin bellek izinin ve tahsis boyutunun azaldığını, ekleme veriminin yüzde 43 arttığını ve sorgu gecikmesinin yüzde 19 düştüğünü gösteriyor. Bu da Cloudflare’ın ek RAM eklemeden önbellek kapasitesini büyütebilmesine imkân tanıyor.
Neden önemli
Cloudflare’ın DNS önbelleğindeki bu yeniden tasarım, tek tek girişlerin bellek başlığını düşürerek 250 milyardan fazla kaydın tutulduğu bir sistemde toplam bellek tüketimini dramatik biçimde azaltıyor. Daha düşük p90 ve p99 bellek kullanımı, aynı fiziksel kaynaklarla daha fazla önbellek kapasitesi anlamına geliyor. Buna ek olarak, ekleme veriminin yükselmesi ve sorgu gecikmesinin düşmesi, 1.1.1.1 üzerinden geçen DNS trafiğinin hem daha hızlı hem de daha verimli işlenmesini sağlıyor. Bu kombinasyon, aynı altyapı üzerinde daha yüksek ölçek ve daha tutarlı performans elde edilmesini mümkün kılıyor.
Sinyal mi, gürültü mü?
Bu haber önemli mi, yoksa abartı mı? Başkalarının ne dediğini görmeden önce sen karar ver.
Kaynaklar
- InfoQ