Select Page

Bộ nhớ đệm của CDN- CDN Caching

Bộ nhớ đệm của CDN- CDN Caching
This entry is part 3 of 6 in the series CDN- Kiến thức tổng hợp từ A- Z

Bộ nhớ đệm là trọng tâm của các dịch vụ phân phối nội dung( CDN). Tương tự như các bộ nhớ cache của trình duyệt lưu các tệp trên ổ cứng nơi chúng có thể được truy cập nhanh hơn, CDN sẽ chuyển nội dung trang web của chúng ta đến các máy chủ proxy mạnh mẽ được tối ưu hóa để phân phối nội dung nhanh hơn.

Bộ nhớ đệm hoạt động bằng cách lưu trữ các tệp trên trang web có chọn lọc trên các máy chủ proxy của CDN cache, nơi chúng có thể được truy cập nhanh chóng bởi những người truy cập trang web từ một vị trí gần đó nhất.

 

Static File( File tĩnh)

Phần lớn nội dung trang web bao gồm các tệp tin định dạng tĩnh trước đó không mong đợi thay đổi theo thời gian( hoặc cho những người dùng khác nhau). Các tệp này là ứng cử viên mặc định cho bộ nhớ đệm, trái ngược với các dynamic file- các tệp tin động, được tạo ra theo thời gian dựa trên thông tin từ cơ sở dữ liệu.

Ví dụ: Mẫu lưu trữ static file với thông tin sản phẩm được tạo ra tự động. Các tệp điển hình là:

CDN Caching- Static File

Chức năng của bộ nhớ đệm CDN

Giảm chi phí băng thông

Giảm chi phí băng thông

Việc cung cấp nội dung từ CDN caching proxy sẽ loại bỏ gánh nặng từ origin( backend) server- máy chủ gốc( phụ trợ), giảm đáng kể chi phí băng thông liên quan đến phục vụ nội dung cho nhiều khách truy cập. Đối với hầu hết trang web, chi phí băng thông có thể giảm từ 40% đến 80%, tùy thuộc vào tỷ lệ % nội dung có thể lưu được.

Cải tiến trải nghiệm người dùng

Cải tiến trải nghiệm người dùng

Mạng lưới phân phối toàn cầu các cache proxy server, CDN mang lại nội dung web gần hơn với khách truy cập cho dù họ ở đâu. Việc có được nội dung từ local server sẽ cải thiện đáng kể tốc độ truy cập và trải nghiệm của người dùng.

Đảm bảo nội dung đáng tin cậy

Đảm bảo nội dung đáng tin cậy

Các CDN hiện đại có dung lượng vượt xa hầu hết các khả năng của mạng doanh nghiệp bình thường. Trường hợp một trang web tự lưu trữ có thể dễ dàng bị gián đoạn bởi các đỉnh điểm giao thông bất ngờ hoặc các cuộc tấn công từ chối dịch vụ, các máy chủ lưu trữ CDN có độ bền và an toàn cao. Kết quả là chúng ổn định trong các trường hợp lưu lượng truy cập trong các thời gian cao điểm.

Cách hoạt động của Cache Server

Các proxy cache server là các khối xây dựng của các trung tâm dữ liệu mạng của CDN có chiến lược toàn cầu. Các điểm hiện diện( PoP) được lựa chọn dựa trên mô hình lưu lượng từng khu vực. Vị trí hoạt động cao với nhiều trung tâm dữ liệu data center. Mặt khác, các vị trí từ xa với ít người dùng có thể chỉ có một PoP để bao phủ một khu vực địa lý rộng lớn.

Cache server hoạt động

Khi ở đúng vị trí, các cache server hoạt động như một kho lưu trữ nội dung web, cung cấp cho người dùng địa phương quyền truy cập nhanh vào các tệp lưu trữ trong bộ nhớ cache. Càng gần cache server cho người dùng cuối, thời gian kết nối càng ngắn để chuyển dữ liệu web.

Hardware( phần cứng) thông minh, một máy chủ cá nhân điển hình là một nhà cung cấp nội dung với RAM và nguồn lưu trữ SSD. Là một lựa chọn nhanh hơn, RAM được sử dụng cho các tài nguyên cao, trong khi SSD được sử dụng cho các tệp web ít yêu cầu nhất nhưng vẫn có thể lưu lại được.

Thuật toán Caching

Hiệu quả bộ nhớ đệm dựa trên tỷ lệ đạt được cao,  cho thấy các tài nguyên được yêu cầu có mặt trong bộ nhớ cache. Do đó, công thức chung để tính toán thời gian tham chiếu bộ nhớ trung bình là:

T= m x Tm + Th + E

  • T: thời gian tham chiếu bộ nhớ trung bình
  • m: tỉ lệ bỏ lỡ = 1- hit ratio (hit ratio: tỉ lệ trúng)
  • Tm: thời gian để thực hiện truy cập bộ nhớ chính khi có lỗi( hoặc với mutil- level cache, thời gian tham chiếu trung bình cho bộ nhớ cache tiếp theo thấp hơn)
  • Th: bằng lacenty, thời gian để tham khảo bộ nhớ cache khi có một hit
  • E: các hiệu ứng phụ khác nhau, chẳng hạn như các tác động kép trong các hệ thống đa xử lý

Một số thuật toán để đạt được tỉ lệ cao, bao gồm:

Bélády Algorithom

Luôn luôn loại bỏ các thông tin được cho là không cần thiết dài nhất trong tương lai. Cách tiếp cận này quá tốt khi người ta có thể dự đoán những thông tin trong tương lai. Nhưng điều này là hoàn toàn không thể, vì vậy thuật toán này hiếm khi được sử dụng trong thực tế.

Least Recently Used( LRU)

Loại bỏ các tài nguyên được sử dụng lâu nhất trước tiên. Thuật toán này được thực hiện bằng cách gán một bộ đếm tuổi cho mỗi tài nguyên lưu trữ là loại bỏ những tài nguyên có bộ đếm thấp. Đây là phương pháp hiệu quả nhất để quản lý bộ nhớ cache.

Most Recently Used( MRU)

Trái ngược với thuật toán LRU, điều này loại bỏ các tệp lưu trữ gần đây nhất trước tiên. Thuật toán này hữu ích nhất trong các tình huống khi một tệp lưu trữ cũ hơn có nhiều khả năng được truy cập lại.

Cache headers

Các nhà phát triển web sử dụng tiêu đề HTTP cache để đánh dấu nội dung web có thể lưu trữ và đặt thời lượng bộ nhớ cache. Sử dụng tiêu đề bộ nhớ cache, chúng ta có thể kiểm soát chiến lược bộ nhớ đệm bằng cách thiếp lập các chính sách bộ nhớ cache tối ưu đảm bảo tính mới mẻ của nội dung.

Ví dụ: “Cache- Control: max- age= 3600” có nghĩa là tệp có thể được lưu trữ trong bộ nhớ cache không quá một giờ trước khi nó phải được tải lại từ nội dung gốc.

Gắn thẻ một cách tỉ mỉ từng tập tin hoặc thậm chí các nhóm tập tin có thể bị áp đảo và dễ bị thiếu hiệu quả. Các CDN hiện đại cho phép chúng ta bỏ qua việc thực hành bằng cách sử dụng các cơ chế thông minh có thể ghi đè các chỉ thị cache headers khi chúng được phát hiện là không tối ưu hóa.

Thông thường, các cơ chế này cho phép bộ nhớ cache nội dung động được đánh dấu là không thể truy xuất được theo mặc định.

Đáp ứng cache headers

Cache- Control( Kiểm soát bộ nhớ cache)

Được giới thiệu với http/1.1, tiêu đề xử lý nhiều chức năng bộ nhớ cache. Kiểm soát bộ nhớ cache được hỗ trợ tất cả các trình duyệt hiện đại và thay thế bất kỳ tiêu đề thế hệ trước( như Expires).

  • Cache- Control: public- cho phép bộ nhớ đệm của các nền tảng công cộng như CDNs
  • Cache- Control: private- dành riêng cho thông tin cá nhân được chỉ định không phải là bộ nhớ cache
  • Cache- Control: no- cache- yêu cầu xác nhận trước khi lưu trữ
  • Cache- Control: no- store- hoàn toàn cấm việc lưu trữ
  • Cache- Control: public, max- age= [seconds]- đặt một giới hạn tối đa( tính bằng giây) cho thời gian mà nội dung có thể được lưu trữ trước khi xóa

Cache- Control- Expires

Expires

Tương tự như Cache- Control: max-age, đặt thời gian hết hạn và loại bỏ nội dung

Pragma

Pragma

Phần lớn thay thế bởi Cache- Control, Pragma trước đây được sử dụng để xử lý các hướng dẫn về bộ nhớ đệm cho các trình duyệt

Surrogate

Surrogate

Cung cấp cho bạn tăng kiểm soát các chính sách bộ nhớ cache, hoạt động với quyền hạn của origin server

Vary

Vary( sử dụng cẩn thận)

Một số trình duyệt vẫn còn phải vật lộn với việc hỗ trợ tiêu đề Vary. Khi được sử dụng đúng cách, Vary có thể là một công cụ mạnh mẽ để quản lý phân phối nhiều phiên bản tập tin, đặc biệt đối với các tệp nén được lưu trữ bên cạnh các đối tác không nén của chúng

Etag

Etag

Cung cấp nội dung web đã lưu trữ của chúng ta bằng các số nhận dạng duy nhất, cho phép ghi nhãn cá nhân và phân loại phức tạp hơn

Kiểm soát Cache- Control thông minh

Đến nay, phần lớn bộ nhớ đệm của CDN là một quá trình thực hiện. Các CDN hiện đại dang phát triển các quy trình mới để giám sát, phân loại và lưu trữ một phạm vi rộng hơn của nội dung, tiết kiệm thời gian và cho phép hiệu quả tổng thể cao hơn.

Cách tiếp cận dựa vào học tập này dựa trên khả năng của CDN để theo dõi các mẫu sử dụng nội dung để tự động tối ưu hóa lưu trữ và phân phối. Lợi ích của việc sử dụng các bộ điều khiển bộ nhớ thông minh như vậy bao gồm:

Kiểm soát Cache Control thông minh

Một trong những lợi ích chính của bộ điều khiển bộ nhớ thông minh là khả năng xác định các cơ chế cache mới cho các đối tượng tự động. Những mẫu nội dung này được tạo ra lần nữa với mỗi lượt truy cập có thể không thay đổi nhưng vẫn được xem là “dynamic” do tính kỹ thuật.

Các thuật toán bộ nhớ cache thông minh có thể tự động xác định nội dung động chỉ đơn giản bằng cách quan sát các mẫu sử dụng. Ví dụ: khi một hệ thống thông báo rằng phiên bản HTML giống nhau của trang sản phẩm đang được phục vụ nhiều lần, nó sẽ được gắn nhãn “static”, mặc dù được tạo ra tự động.

Từ thời điểm đó, đối tượng HTML được xem là “cacheable” và được phục vụ trực tiếp từ các máy chủ proxy của CDN để cải thiện tốc độ tải trang và khả năng phản hồi. Các thuật toán theo dõi đối tượng liên tục và đánh giá lại tình trạng của nó, đánh dấu nó là dynamic ngay sau khi nhìn thấy nó đã được sửa đổi.

Thực hiện điều này theo quy mô có thể cải thiện đáng kể hiệu suất trang web, không ảnh hưởng đến sự mới mẻ của nội dung.

Bộ nhớ Cache tùy chọn

Ngay cả khi sự tiến bộ gần đây trong bộ nhớ đệm thông minh, kiểm soát vẫn còn là yêu cầu để quản lý bộ nhớ cache tối ưu. Đây là 3 tùy chọn kiểm soát bộ nhớ Cache phải có.

Purge cache

Mang lại cho chúng ta khả năng làm mới các tập tin lưu trữ trong khi đang gọi nội dung đó. Lưu ý rằng, một số nhà cung cấp sẽ chỉ cho phép chúng ta làm mới bộ nhớ cache toàn bộ. Ngoài ra, trong một số trường hợp nhà cung cấp CDN của chúng ta sẽ hạn chế số lần xóa cache trong một khoảng thời gian nhất định.

Always/ Never Cache

Giúp chúng ta ghi đè các tiêu đề bộ nhớ cache theo cách thủ công, gắn thẻ các tệp cần được phục vụ hoặc không bai giờ được phục vụ từ bộ nhớ cache, đặc biệt khi kết hợp với các tùy chọn quản lý hàng loạt cho phép chúng ta áp dụng các yêu cầu này cho toàn bộ nhóm tệp( Ví dụ: tất cả các tệp JPG trong template/ image/ folder)

Cache for period

Sàng lọc tùy chọn bộ nhớ cache, điều này cho phép chúng ta đặt một khoảng thời gian cụ thể mà trong đó đối tượng cần được phục vụ từ cache trước khi làm việc. Được truy cập từ giao diện CDN, điều này cho phép quản lý dễ dàng các tệp tin cụ thể. Tuy nhiên, tùy chọn này hữu ích nhất khi được sử dụng để quản lý tệp hàng loạt( Ví dụ: tất cả các tệp .JS được lưu trữ trong năm ngày)

Lời kết

Nhiệm vụ của CDN là phân phối nội dung được bảo mật, cải thiện tốc độ tải trang bằng cách giảm lacenty, để đáp ứng những yêu cầu này CDN Caching là một giải pháp tối ưu. Bộ nhớ đệm của CDN thực hiện việc lưu trữ các static file và dynamic file được sinh ra trong quá trình truy cập của người dùng, khi có lệnh truy cập từ phía trình duyệt, CDN Caching thực hiện việc trích xuất nội dung thay vì để phần việc này cho Origin Server, vì thế giảm đáng kể chi phí băng thông tiêu thụ nội dung tại máy chủ gốc.

Series Navigation<< Cơ sở hạ tầng của CDNTối ưu hóa FEO- Front End Optimization >>

About The Author

Rain Nguyen

Tôi là Rain, người sáng lập và là biên tập viên của blog RN DOT COM. Tôi làm việc để xây dựng một cộng đồng vững mạnh bằng cách hướng dẫn mọi người viết blog kiếm tiền, xây dựng hệ thống kinh doanh của chính mình qua hệ thống bài viết của tôi. Nếu bạn thấy bài viết nào đó hay, hãy chia sẻ nó như một cách giúp tôi hỗ trợ những ai đang khao khát như bạn. I love all my friends!

Leave a reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Tùy chọn tìm kiếm tên miền