Tóm tắt nhanh

  • Cloudflare thử nghiệm Cache Transcoding trong Pingora, nén tài nguyên đủ điều kiện bằng Zstandard trước khi lưu và giải nén khi phân phối.
  • Thiết kế cho thấy một mức tăng CPU nhỏ có thể đổi lấy tiết kiệm lớn về lưu trữ và băng thông giữa trung tâm dữ liệu.
  • Chạy thử trên một nhóm nội dung có hit rate cao, đo tỷ lệ nén, CPU và băng thông trước khi mở rộng.

Điều gì đã xảy ra

Đổi CPU lấy dung lượng cache

Cloudflare đang thử nghiệm một kiến trúc có tên Cache Transcoding nhằm tăng dung lượng cache hiệu dụng trong bối cảnh chi phí bộ nhớ và ổ đĩa tăng. Khi một phản hồi phù hợp đi vào cache, Pingora mã hóa nội dung bằng Zstandard trước khi ghi xuống đĩa. Bản nén được giữ nguyên khi tài nguyên nằm trong cache và khi được chuyển giữa các trung tâm dữ liệu qua Tiered Cache; hệ thống chỉ giải nén ngay trước lúc gửi cho client.

Kết quả thử nghiệm ban đầu cho thấy các tài nguyên đủ điều kiện giảm còn trung bình khoảng một phần ba kích thước lưu trên đĩa. Chi phí mã hóa chỉ phát sinh một lần khi đối tượng vào cache, trong khi lợi ích về lưu trữ và lưu lượng liên vùng được lặp lại mỗi lần đối tượng được tái sử dụng. Đổi lại, proxy hướng origin phải chịu thêm một lượng CPU nhỏ, vì vậy đây là bài toán tối ưu tổng chi phí chứ không đơn thuần là bật thêm một thuật toán nén.

Bài học cho đội vận hành web

Điểm đáng chú ý là định dạng lưu nội bộ có thể khác định dạng giao cho người dùng mà không làm thay đổi byte của tài nguyên sau giải nén. Đội CDN nên đo riêng tỷ lệ nén, CPU, độ trễ giải mã, hit rate và băng thông liên vùng trên từng loại nội dung. Chỉ nên áp dụng cho đối tượng có vòng đời và tần suất tái sử dụng đủ lớn; các tệp đã nén mạnh hoặc ít được truy cập có thể không bù được chi phí xử lý.

Thử nghiệm cũng gợi ý một nguyên tắc kiến trúc rộng hơn: tối ưu cache cần nhìn cả đường đời của dữ liệu. Một phép biến đổi nhỏ ở thời điểm nhập có thể tiết kiệm lặp lại ở mọi lần đọc và sao chép. Tuy nhiên, rollout cần canary, giới hạn loại MIME, theo dõi mức dùng CPU và cơ chế quay lui rõ ràng để tránh biến tiết kiệm dung lượng thành nghẽn tính toán.

Bài viết liên quan

Nguồn tham khảo

How we could save petabytes of cache storage with Zstandard and Pingora

Vì sao developer cần quan tâm

Thiết kế cho thấy một mức tăng CPU nhỏ có thể đổi lấy tiết kiệm lớn về lưu trữ và băng thông giữa trung tâm dữ liệu.

  1. 1Chạy thử trên một nhóm nội dung có hit rate cao, đo tỷ lệ nén, CPU và băng thông trước khi mở rộng.