Khi nào bộ nhớ đệm proxy dùng chung giúp ích cho trình thu thập
Hãy đánh giá tài nguyên lặp lại, độ tươi mới và các yêu cầu thực tế của trình thu thập trước khi kỳ vọng bộ nhớ đệm forward-proxy dùng chung cải thiện thông lượng.
Giả sử nhiều worker trong trình duyệt mở các trang khác nhau của cùng một trang web. Các trang đó tham chiếu cùng một bảng kiểu, logo và gói script. Bộ nhớ đệm forward dùng chung có thể khiến lần tải đầu tiên hữu ích cho các worker sau khi các phản hồi có thể được dùng lại.
Giờ hãy thay đổi khối lượng công việc: mỗi worker chỉ tải một tài liệu HTML và không bao giờ tải các tài nguyên được liên kết. Bảng kiểu chung vẫn nằm trong đánh dấu, nhưng không worker nào yêu cầu nó. Nó không đóng góp gì vào tỷ lệ trúng bộ nhớ đệm của proxy.
Bắt đầu từ những yêu cầu mà trình thu thập của bạn thực sự thực hiện
Trình duyệt hiển thị trang và ứng dụng khách HTTP lấy mã nguồn của nó tạo ra các tập yêu cầu khác nhau. Hãy xem xét các tập đó trước khi chọn thiết kế bộ nhớ đệm.
| Khối lượng công việc | Tiềm năng dùng lại chung |
|---|---|
| Các worker tải lặp lại cùng những tài sản công khai | Hữu ích khi quy tắc độ tươi mới và khóa bộ nhớ đệm cho phép |
| Mỗi yêu cầu có URL hoặc biến thể phản hồi riêng | Ít trùng lặp để dùng lại |
| Phản hồi cần được xác thực lại trước khi dùng lại | Có thể tiết kiệm byte phản hồi nhưng vẫn cần một chuyến lên nguồn |
| Các worker đã đáp ứng yêu cầu từ bộ nhớ đệm cục bộ của chính họ | Những yêu cầu đó có thể không bao giờ đến proxy dùng chung |
Chỉ riêng sự bằng nhau của URL là không đủ. Chính sách độ tươi mới của phản hồi và các trường do Vary nêu tên có thể phân biệt các biểu diễn. Nội dung riêng tư, không thể lưu trữ hoặc đã xác thực cần các quy tắc bộ nhớ đệm dùng chung áp dụng được; không nên ép nó vào một kết quả công khai duy nhất chỉ để tăng số lần trúng.
Với lưu lượng HTTPS CONNECT thông thường, proxy forward mang một đường hầm mã hóa và không có đối tượng HTTP nào bên trong để lưu đệm. Triển khai có kiểm tra TLS có hành vi tin cậy và xử lý khác. Hãy nêu chế độ thực tế khi đánh giá liệu bộ nhớ đệm đối tượng có khả dụng hay không.
Một lần trúng bộ nhớ đệm có thể tránh việc lấy từ nguồn, trong khi lần trượt vẫn trả giá cho công việc của trung gian. Hãy so sánh byte hữu ích đã hoàn thành, lưu lượng lên nguồn và độ trễ cho khối lượng công việc dự kiến. Số luồng mô tả tính đồng thời; nó không mô tả bao nhiêu nội dung dùng lại được mà các luồng đó chia sẻ.