Khám phá sở thích, cùng nhau

Deal thật, đánh giá chân thực và câu chuyện mua sắm từ những người cùng sở thích với bạn — mỗi ngày trên Sammfy.

Khám phá sở thích, cùng nhauDeal thật, đánh giá chân thực và câu chuyện mua sắm từ những người cùng sở thích với bạn — mỗi ngày trên Sammfy.

Cloudflare tiết kiệm 100TB RAM nhờ tối ưu hóa DNS cache

Cloudflare tiết kiệm 100TB RAM nhờ tối ưu hóa DNS cache
Sở thích|Lưu trữ & mạng

Mỗi byte trong DNS cache giờ là bài toán hạ tầng, không còn là chi tiết kỹ thuật

DNS cache tối ưu hóa trong bối cảnh Cloudflare đang vận hành public DNS resolver 1.1.1.1 với hơn 250 tỷ bản ghi lưu trữ đồng thời là câu chuyện về cách một vài byte cấu trúc dữ liệu có thể quyết định việc tiết kiệm hàng trăm terabyte RAM, cải thiện hiệu suất truy vấn và tránh phải mở rộng phần cứng tốn kém trên hạ tầng mạng toàn cầu.

Cloudflare mới công bố rằng họ “giải phóng” được khoảng 100TB RAM trên toàn bộ đội máy chủ, chỉ bằng cách thiết kế lại cách một entry DNS cache được biểu diễn trong bộ nhớ, không thay đổi bất kỳ thanh RAM vật lý nào. Năm thay đổi ở tầng Rust trên nền tảng Big Pineapple – bộ não đứng sau DNS resolver 1.1.1.1 – đã giảm dung lượng mỗi entry từ 953 byte xuống còn 420 byte, tương đương tiết kiệm 56% và đồng thời tăng thông lượng ghi cache thêm 43% cùng giảm độ trễ truy vấn 19%. Ở quy mô hơn 250 tỷ entry, mỗi byte lãng phí trong DNS cache tương đương khoảng 250GB RAM trên toàn cụm. Đây không còn là tối ưu vi mô; nó là chiến lược hạ tầng mạng.

Cloudflare tiết kiệm 100TB RAM nhờ tối ưu hóa DNS cache

Byte nào không dùng đến phải bị loại: nội tạng kỹ thuật của Big Pineapple

Cốt lõi của câu chuyện tiết kiệm bộ nhớ DNS là chấp nhận sự thật khó chịu: cấu trúc dữ liệu “dễ lập trình” thường không phù hợp với DNS resolver quy mô lớn. Big Pineapple – nền tảng Rust vận hành 1.1.1.1, Gateway DNS, DNS Firewall và AS112 – luôn giữ hơn 250 tỷ bản ghi trong cache để tránh phải hỏi lại authoritative server cho các truy vấn lặp lại. Trong phạm vi đó, một byte overhead trên mỗi entry đã là 250GB RAM – tám byte là khoảng 2TB.

Theo mô tả kỹ thuật, bước tối ưu đầu tiên là thay Vec và String có khả năng tăng trưởng bằng các slice cố định được cấp phát trong heap sau khi bản ghi vào cache, loại bỏ các trường “capacity” không còn ý nghĩa sau khi dữ liệu đã ổn định. Thay đổi này một mình đã tiết kiệm 64 byte cho mỗi entry, tương đương hơn 15TB trên toàn hệ thống. Các bước tiếp theo gộp ba danh sách bản ghi thành một buffer duy nhất đánh chỉ số bằng offset 2 byte, loại bỏ các tên miền chủ sở hữu trùng với domain truy vấn, và lưu dữ liệu bản ghi dưới dạng byte wire-format kèm độ dài. Kết quả là số bộ nhớ thực cấp phát cho mỗi entry giảm từ khoảng 1,1KB xuống còn 461 byte.

Hiệu suất 1.1.1.1: tối ưu hóa bộ nhớ nhưng lại được “tặng kèm” tốc độ

Điều đáng chú ý là DNS cache tối ưu hóa không đổi lấy hiệu suất, mà còn cải thiện Cloudflare 1.1.1.1 hiệu suất một cách rõ rệt. Việc đóng gói dữ liệu bản ghi liên tục (contiguous) trong bộ nhớ giúp tăng tính cục bộ của CPU cache, cho phép đa số record được sao chép trực tiếp từ buffer sang phản hồi gửi ra ngoài, không cần tuần tự hóa lại từng trường. Kết quả: thông lượng chèn entry cache tăng từ 625.000 lên 893.000 entry mỗi giây (+43%), trong khi độ trễ truy vấn giảm từ 828ns xuống 670ns (–19%).

Trong giai đoạn triển khai từ giữa tháng 5 đến đầu tháng 7, p99 resident memory trên mỗi instance giảm từ 9,3GB xuống 5,3GB. Điều này cho thấy khi tối ưu hóa hạ tầng mạng ở tầng byte, bạn vừa tiết kiệm bộ nhớ DNS vừa giảm áp lực lên bộ nhớ đệm CPU, đường dẫn dữ liệu và allocator. DNS resolver quy mô lớn không thể chỉ đếm số request/giây; họ phải tối ưu đến mức “byte/entry” để không bị chi phí phần cứng bóp nghẹt. Tối ưu đúng chỗ, hiệu suất tự khắc đi lên.

100TB RAM tương đương 130 server Gen 13: bài học về quy mô và chi phí

Con số 100TB RAM được “giải phóng” nghe có vẻ trừu tượng, nhưng nguồn dữ liệu cho biết nó tương đương lượng DDR5 trên 130 server Gen 13 cấu hình 768GB mỗi máy. Nếu không tối ưu dữ liệu DNS cache, để đạt cùng dung lượng hữu dụng, Cloudflare về lý thuyết phải triển khai thêm lượng máy chủ tương đương – trong bối cảnh RAM server DDR5 được dự báo tăng giá mạnh theo năm. Đây là minh họa trực diện cho việc một dự án phần mềm có thể “hủy” nhu cầu mua thêm cả một lứa phần cứng mới.

Điều đáng nói là Cloudflare không hạ cấu hình RAM hiện tại. Họ giữ nguyên phần cứng và dùng dung lượng tiết kiệm được để mở rộng DNS cache, tăng tỉ lệ cache hit và giảm lưu lượng truy vấn đẩy lên các authoritative server. Nói cách khác, tối ưu hóa không phải để thắt lưng buộc bụng, mà để “mua” thêm dung lượng dịch vụ từ cùng một hạ tầng. Đây là quan điểm rất khác với cách nhiều tổ chức vẫn thường làm: thêm server trước, tối ưu mã sau.

Ý nghĩa rộng hơn: tương lai của DNS resolver quy mô lớn

Câu chuyện Cloudflare không chỉ là thành tích nội bộ, mà là case study cho mọi DNS resolver quy mô lớn. Khi bạn vận hành hàng trăm tỷ entry DNS cache đồng thời, mọi quyết định thiết kế – chọn kiểu dữ liệu, tách hay gộp buffer, giữ hay bỏ metadata – đều nhân lên thành hàng chục terabyte bộ nhớ, hàng phần trăm độ trễ, và cả nhu cầu mở rộng trung tâm dữ liệu. Việc Cloudflare coi đây là dự án “thu hồi bộ nhớ” lớn thứ hai trong vòng một năm, sau khi viết lại tầng xử lý request FL2 bằng Rust, cho thấy tối ưu hóa hạ tầng mạng đã trở thành chiến lược dài hạn, không phải một lần cho xong.

Trong tương lai gần, Cloudflare dự định dùng toàn bộ 100TB RAM được giải phóng để tiếp tục phình to DNS cache, nâng tỉ lệ hit và cắt giảm truy vấn lên tầng trên. Điều này gián tiếp giúp người dùng cuối: phản hồi DNS ổn định hơn, ít phụ thuộc vào độ trễ và sức khỏe của authoritative server. Bài học sau cùng khá rõ: nếu muốn xây dựng hạ tầng mạng hiệu quả, hãy đo lường hệ thống của bạn bằng “byte x tỷ”, không phải bằng “GB x server”. Khi quy mô đủ lớn, mỗi byte đều mang giá trị của cả một cỗ máy.

Sammfy nhận hoa hồng khi bạn mua sắm qua liên kết của chúng tôi, bạn không phải trả thêm chi phí. Bài viết này được tạo bằng AI từ các nguồn đã công bố và dữ liệu sản phẩm.

You May Also Like

Comments
Viết gì đó...
Chưa có bình luận nào. Hãy là người đầu tiên chia sẻ suy nghĩ!