Cách Cloudflare tối ưu hóa bộ nhớ cache DNS 1.1.1.1, tiết kiệm 100 TB RAM
Bằng cách tinh chỉnh cách lưu trữ các bản ghi DNS trong bộ nhớ, Cloudflare đã cắt giảm hơn 50% dung lượng mỗi entry, giải phóng 100 TB RAM trên toàn hệ thống mà không làm giảm hiệu...
- Giọng nữ Bắc
Big Pineapple, nền tảng vận hành các dịch vụ DNS của Cloudflare như 1.1.1.1, Gateway DNS và DNS Firewall, hiện đang quản lý hơn 250 tỷ bản ghi cache. Với quy mô khổng lồ này, chỉ cần lãng phí một byte cho mỗi bản ghi cũng có thể tiêu tốn hàng trăm gigabyte bộ nhớ trên toàn hệ thống.
Chiến lược tối ưu hóa bộ nhớ
Đội ngũ kỹ thuật của Cloudflare đã thực hiện năm thay đổi liên tiếp trong cách lưu trữ các bản ghi cache, giúp giảm hơn 50% dung lượng bộ nhớ trên mỗi entry. Kết quả là 100 TB RAM đã được giải phóng, tương đương với dung lượng bộ nhớ của 130 server thế hệ 13. Đáng chú ý, hiệu suất hệ thống không hề bị ảnh hưởng: tốc độ chèn dữ liệu (insert throughput) tăng 43% và độ trễ truy vấn (lookup latency) giảm 19%.
Các kỹ thuật chính được áp dụng:
- Thay thế Vec bằng Box: Trong Rust,
Vecthường chiếm dụng bộ nhớ dư thừa do cơ chế cấp phát dung lượng dự phòng. Việc chuyển sangBoxgiúp loại bỏ các trường không cần thiết, tiết kiệm 64 byte cho mỗi entry. - Tối ưu hóa cấu trúc dữ liệu: Thay vì lưu trữ các phần (answer, authority, additional) trong các danh sách riêng biệt với con trỏ 8-byte, Cloudflare chuyển sang sử dụng các offset 2-byte, giúp giảm đáng kể bộ nhớ và padding không cần thiết.
- Loại bỏ dữ liệu trùng lặp: Trong hầu hết các truy vấn, tên miền sở hữu (owner) trùng với tên miền được truy vấn. Bằng cách loại bỏ trường owner và chỉ lưu trữ khi cần thiết, hệ thống giảm thiểu đáng kể việc cấp phát heap.
- Tái cấu trúc Enum: Các enum lớn gây lãng phí bộ nhớ do cơ chế padding. Việc sử dụng
Boxcho các biến thể lớn giúp tối ưu hóa không gian lưu trữ cho các bản ghi phổ biến như A và AAAA. - Lưu trữ ở định dạng wire format: Thay vì lưu trữ các bản ghi đã phân tích (parsed), việc lưu trữ dữ liệu dưới dạng raw bytes giúp tăng tính cục bộ của bộ nhớ (memory locality) và cải thiện tốc độ truy xuất đáng kể.
Những cải tiến này không chỉ giúp Cloudflare tiết kiệm chi phí phần cứng mà còn nâng cao khả năng xử lý của hệ thống DNS toàn cầu, đảm bảo tốc độ phản hồi nhanh chóng cho người dùng cuối.
Nguồn tham khảo: Cloudflare Blog

No Comment! Be the first one.