KIẾN THỨC LÀ VÔ TẬN

ĐI MỘT NGÀY ĐÀNG HỌC MỘT SÀNG KHÔN

Quay lại tin Tin tức

Cloudflare tối ưu cache DNS 1.1.1.1: giảm khoảng 100 TB RAM, lookup nhanh hơn 19%

Tech #75 Đăng bởi PVYSTORE 2026-08-28 08:08:12 👁 18 lượt xem
Cloudflare tối ưu cache DNS 1.1.1.1: giảm khoảng 100 TB RAM, lookup nhanh hơn 19%

Bài viết này do AI tạo ra, có thể mắc sai sót.

Tóm tắt nhanh

Big Pineapple cache gì?

Big Pineapple lưu kết quả DNS gồm answer, authority, additional section, TTL, thời điểm tạo, số lượt hit và metadata liên quan. Cache nóng dần khi query đến; khi đạt giới hạn entry, dữ liệu cũ hoặc ít phổ biến bị loại để nhường chỗ. Với EDNS Client Subnet, một tên miền có thể cần nhiều phiên bản cache theo mạng client, làm số entry và chi phí RAM tăng thêm.

Vì sao layout bộ nhớ lại tạo khác biệt lớn?

Cloudflare chuyển nhiều trường bất biến sau khi ghi từ Vec/String sang Box<[T]>/Box<str>, tránh giữ capacity và phần heap dự phòng không còn cần thiết. Chỉ riêng 8 trường kiểu này tiết kiệm 64 byte mỗi entry. Họ cũng gộp các danh sách DNS section thành một danh sách với offset, giảm pointer và metadata.

Tối ưu record theo kiểu dữ liệu và wire format

Các record DNS từng dùng enum mà kích thước bị chi phối bởi biến thể lớn nhất, trong khi A và AAAA chiếm hơn 80% traffic. Cloudflare thử boxing biến thể lớn, rồi chuyển phần dữ liệu record sang buffer byte liên tiếp gần wire format. Cách này giảm overhead enum, giảm allocation rời rạc và tăng locality CPU; các record phổ biến có thể được copy nhanh hơn khi dựng response.

Kết quả benchmark và production

Chỉ sốTrướcSauThay đổi
Footprint mỗi entry953 byte420 byte-56%
Allocation mỗi entry1,1 KB461 byte-58%
Thông lượng insert625.000 entry/s893.000 entry/s+43%
Lookup latency828 ns670 ns-19%

Trên production, rollout bắt đầu ngày 18/5/2026 và hoàn tất trên các dịch vụ ngày 6/7/2026. p99 resident memory giảm từ 9,3 GB xuống 5,3 GB, tương đương 43%; tổng working set toàn fleet giảm xấp xỉ 100 TB sau khi hệ thống ổn định.

Ý nghĩa với người vận hành DNS

Bài học không phải mọi DNS resolver đều cần sao chép implementation của Cloudflare. Điểm quan trọng là đo đúng: traffic mix, record type, mức lấp đầy cache, allocator và memory ngoài cache quyết định kết quả thực tế. Với resolver lớn, giảm metadata mỗi object và số allocation có thể đồng thời giảm chi phí RAM lẫn cải thiện latency.

Phân tích

DNS thường bị xem là dịch vụ nhẹ, nhưng ở quy mô hàng trăm tỷ entry, từng byte là tài nguyên hạ tầng. Cloudflare cho thấy tối ưu data structure không chỉ là bài tập code: nó giải phóng công suất để tăng cache hit rate, giảm truy vấn lên authoritative server và cải thiện độ bền của hệ thống khi lưu lượng tăng. Với homelab hay resolver nhỏ, bài viết vẫn hữu ích để nhắc rằng cache policy, quan sát memory và benchmark theo traffic thật quan trọng hơn tuning theo cảm tính.

Nguồn tham khảo

Cloudflare Blog, “How we saved 100 terabytes of memory by optimizing 1.1.1.1’s DNS cache”, ngày 27/8/2026.

× Zalo QR Alexz