Cache là gì? Vai trò và phân loại cache

Cache là gì? Vai trò và phân loại cache

1. Cache là gì?

Một cache (phát âm là CASH) là phần cứng hoặc phần mềm lưu trữ dữ liệu tạm thời trong môi trường máy tính (computing environment).

Tìm hiểu dữ liệu là gì?

Trong đó, dữ liệu là thông tin được biên dịch thành một dạng thức giúp việc di chuyển hoặc xử lý dữ liệu được dễ dàng hơn. Vế phương diện công nghệ thông tin, dữ liệu là thông tin được chuyển đổi thành dạng kỹ thuật số nhị phân. Dữ liệu có thể được sử dụng như một chủ thể số ít hoặc số nhiều. Dữ liệu thô là một thuật ngữ được sử dụng để mô tả dữ liệu ở định dạng kỹ thuật số cơ bản nhất.

Trong môi trường máy tính, dữ liệu khi truyền thường được cache lại (lưu trữ) để rút ngắn thời gian truy cập, qua đó giảm độ trễ và cải thiện đầu vào (input)/đầu ra (output), viết tắt là (I/ O). Bởi vì hầu hết tất cả các workload của ứng dụng phụ thuộc vào các hoạt động I/ O, caching do đó được sử dụng để cải thiện hiệu suất ứng dụng.

Caching (phát âm là "cashing") là quá trình lưu trữ dữ liệu trong bộ nhớ đệm cache.

>> Tìm hiểu thêm: Caching/Cache là gì? Website cache như thế nào?

2. Ví dụ về cache (bộ nhớ đệm)

Các web browsers như Internet Explorer, Firefox, Safari và Chrome sử dụng bộ nhớ cache của trình duyệt để cải thiện hiệu suất cho các webpages (trang web) được truy cập thường xuyên. Khi bạn truy cập một webpage, các files mà trình duyệt của bạn yêu cầu sẽ được lưu trữ trên bộ nhớ máy tính trong bộ nhớ đệm (cache) của trình duyệt. 

Nếu bạn nhấp vào "back" và quay lại trang đó, trình duyệt có thể truy xuất hầu hết các file cần thiết từ bộ nhớ cache thay vì gửi yêu cầu gửi lại tất cả các tệp đó. Cách tiếp cận này được gọi là đọc cache (read cache). 

Browsers đọc dữ liệu từ bộ nhớ cache của trình duyệt nhanh hơn nhiều so với việc phải đọc lại các tệp từ webpage.

3. Cache algorithms (Thuật toán cache)

Thuật toán cache cung cấp hướng dẫn về cách duy trì bộ nhớ cache. Sau đây là một số ví dụ về thuật toán bộ nhớ đệm cache:

Ít được sử dụng thường xuyên nhất (LFU, Least Frequently Used) 

Sử dụng bộ đếm để theo dõi tần suất truy cập vào một mục; mục nào có số lần truy nhập thấp nhất sẽ được xóa đi đầu tiên.

Ít sử dụng gần đây nhất (LRU, Least Recently Used)

Giữ các mục được sử dụng gần đây nhất nằm trên top đầu bộ nhớ đệm; khi đạt đến giới hạn bộ nhớ cache, các mục ít được truy cập gần đây nhất sẽ bị xóa (các top cuối).

Gần đây nhất được sử dụng (MRU, Most Recently Used) 

Ưu tiên loại bỏ các items được sử dụng gần đây nhất; cách tiếp cận này rất hữu ích đặc biệt cho các tình huống các items cũ hơn có nhiều khả năng được truy cập hơn.

4. Các loại cache (bộ nhớ đệm)

Write-around cache

Bộ nhớ đệm cache write-around cho phép ghi các hoạt động được ghi vào bộ nhớ, hoàn toàn bỏ qua bộ nhớ cache. 

- Ưu điểm: Điều này giúp bộ nhớ cache không bị quá tải khi có một số lượng lớn bản ghi I/ O xảy ra. 

- Điểm bất lợi là dữ liệu không được lưu trữ trừ khi nó được đọc từ bộ nhớ. Như vậy, hoạt động đọc ban đầu sẽ tương đối chậm vì dữ liệu chưa được lưu trữ (chưa được cache).

Write-through cache

Write-through cache ghi đè dữ liệu vào cả bộ nhớ cache và bộ nhớ storage. 

- Ưu điểm của phương pháp này là dữ liệu mới được viết luôn được lưu trữ, cho phép dữ liệu đó luôn được đọc nhanh chóng. 

- Một nhược điểm là các hoạt động ghi không được coi là hoàn thành cho đến khi dữ liệu được ghi vào cả bộ nhớ cache và bộ lưu trữ chính (primary storage). Điều này khiến quá trình lưu trữ cache write-through gây ra độ trễ các hoạt động ghi.

Write-back cache

Bộ nhớ đệm ghi lại (Write-back cache) tức toàn bộ các hoạt động ghi đều được chuyển trực tiếp đến bộ nhớ cache. Sự khác biệt duy nhất của Write-back cache đó là khi dữ liệu được lưu trữ, thao tác ghi mới được xem là hoàn chỉnh. Dữ liệu sau đó được sao chép từ bộ nhớ cache vào bộ nhớ (storage). Theo hướng tiếp cận này, sẽ luôn tồn tại một ít độ trễ cho cả hoạt động đọc và ghi. 

- Điểm bất lợi là, tùy thuộc vào cơ chế bộ nhớ đệm nào được sử dụng, dữ liệu có thể dễ dàng bị mất cho đến khi nó được lưu trữ (committed to storage).

>> Tìm hiểu thêm: Phân biệt Cache hit và Cache miss

Cache là gì? Vai trò và phân loại cache - Ảnh 1.

5. Các trường hợp sử dụng cache phổ biến 

Máy chủ bộ nhớ cache (Cache server)

Một dedicated network server (máy chủ mạng chuyên dụng), hoặc dịch vụ hoạt động với tư cách máy chủ (service acting as a server), lưu các webpage hoặc các nội dung Internet khác cục bộ. Điều này đôi khi được gọi là bộ nhớ cache proxy (proxy cache).

Cache là gì? Vai trò và phân loại cache - Ảnh 2.

Máy chủ bộ nhớ cache (Cache server)

Bộ nhớ cache trên đĩa (Disk cache)

Disk cache giữ các dữ liệu gần đây đã được đọc và cả các vùng dữ liệu liền kề liên quan, có nhiều khả năng sắp được truy cập. Một số Disk cache được thiết kế để lưu trữ dữ liệu dựa trên tần suất được đọc của chúng. Các khối lưu trữ (Storage blocks) được đọc thường xuyên, sẽ được gọi là các khối nóng (hot blocks) và tự động được chuyển vào cache.

Bộ nhớ cache (Cache memory)

Bộ nhớ truy cập ngẫu nhiên (RAM, Random access memory) là bộ nhớ mà bộ vi xử lý máy tính có thể truy cập nhanh hơn so với bộ nhớ RAM thông thường. Cache memory thường được gắn trực tiếp với CPU và được sử dụng để lưu trữ các lệnh thường xuyên được truy cập bởi các tiến trình hiện đang chạy. Mặc dù RAM cache (bộ đệm RAM) nhanh hơn nhiều so với bộ nhớ cache dựa trên đĩa (disk-based cache), thì cache memory vẫn nhanh hơn nhiều so với RAM cache vì nó gần với CPU.

Thiết bị nhớ flash (Flash cache)

Cache là gì? Vai trò và phân loại cache - Ảnh 3.

Flash cache

Lưu trữ tạm thời dữ liệu trên chip bộ nhớ flash NAND - thường ở dạng lưu trữ SSD (solid-state drive) - cho phép yêu cầu dữ liệu được đáp ứng với tốc độ cao hơn so với bộ nhớ cache một ổ đĩa cứng truyền thống (HDD, hard disk drive).

6. Làm cách nào để tăng cache memory (bộ nhớ đệm)

Bộ nhớ cache (Cache memory) là một phần của phức hợp CPU, do đó nó được đưa vào chính CPU hoặc được nhúng vào một con chip trên bo mạch hệ thống (system board). Thông thường, cách duy nhất để tăng bộ nhớ cache là cài đặt một bo mạch hệ thống thế hệ tiếp theo (next-generation) và một CPU next-gen tương ứng. Một số bo mạch hệ thống cũ có chứa các khe trống, có thể được sử dụng để tăng dung lượng bộ nhớ cache, tuy nhiên hầu hết các bo mạch hệ thống mới ngày nay lại không bao gồm khe trống này.

7. Kiến thức bổ sung về buffer và cache

Buffer (vùng đệm) giống như cache (bộ nhớ đệm), cũng là một nơi tạm thời cho dữ liệu. Tuy nhiên, mục đích chính của vùng đệm buffer là để hấp thụ các nhu cầu cao (demand spikes). Ví dụ, bộ đệm ghi (write buffer) có thể sử dụng bộ nhớ flash (flash storage) để lưu trữ tạm thời các thao tác ghi và sau đó di chuyển dữ liệu được ghi gần đây vào bộ nhớ chính (main storage) của hệ thống khi tài nguyên có sẵn trở nên dễ dàng hơn. Trong tình huống này, lưu trữ SSD nhanh hơn lưu trữ HDD và có thể hoàn thành quá trình ghi nhanh hơn. Dữ liệu không được lưu trữ trên SSD, vì SSD chỉ được sử dụng làm kho lưu trữ dữ liệu tạm thời.

Dịch từ bài gốc: https://searchstorage.techtarget.com/definition/cache

GiangPTH - BizFly Cloud

>> Có thể bạn quan tâm: Xóa Cache cho website là gì? Có lợi hay hại?

BizFly Cloud là hệ sinh thái điện toán đám mây được vận hành bởi VCCorp - Công ty dẫn đầu trong lĩnh vực truyền thông và internet tại Việt Nam. Với đội ngũ kỹ thuật viên trình độ cao và kinh nghiệm lâu năm làm việc trên các công nghệ khác nhau như cloud, mobile, web..., chúng tôi có đủ khả năng để hỗ trợ đưa ra những lời khuyên hữu ích và công nghệ toàn diện giúp doanh nghiệp chuyển đổi số thành công. Dành cho độc giả quan tâm tới các dịch vụ đám mây do BizFly Cloud cung cấp có thể truy cập tại đây.