Viết nào là đúng? Nhìn vào các phương pháp bộ đệm I / O

Tác Giả: Laura McKinney
Ngày Sáng TạO: 1 Tháng Tư 2021
CậP NhậT Ngày Tháng: 25 Tháng Sáu 2024
Anonim
Viết nào là đúng? Nhìn vào các phương pháp bộ đệm I / O - Công Nghệ
Viết nào là đúng? Nhìn vào các phương pháp bộ đệm I / O - Công Nghệ

NộI Dung


Nguồn: Kgtoh / Dreamstime.com

Lấy đi:

Tốc độ ứng dụng chủ yếu phụ thuộc vào tốc độ I / O của bộ đệm. Ở đây chúng tôi so sánh các phương pháp I / O bộ đệm khác nhau.

Hiệu suất ứng dụng bắt nguồn từ tốc độ - tốc độ trong việc hoàn thành các yêu cầu đọc và ghi mà ứng dụng của bạn yêu cầu từ cơ sở hạ tầng của bạn. Bộ lưu trữ chịu trách nhiệm về tốc độ trả về các yêu cầu I / O (đầu vào / đầu ra) và phương thức được chọn để cam kết ghi và phân phối các lần đọc có tác động sâu sắc đến hiệu suất của ứng dụng. Một phương pháp phổ biến trong ngành công nghiệp hiện nay là sử dụng SSD để lưu trữ trên bộ lưu trữ đĩa quay truyền thống, mảng lai hoặc mảng toàn flash. Hầu hết các giải pháp bộ nhớ đệm đã tăng tốc đọc cho các ứng dụng, nhưng câu hỏi thực sự vẫn là, Cái nào viết đúng?


Hãy để xem xét tại sao tối ưu hóa ghi ảnh hưởng đến hiệu suất ứng dụng của bạn rất nhiều. Viết I / O ngụ ý rằng đó là dữ liệu mới không được ghi trên bộ lưu trữ bên dưới của bạn. Ví dụ, trong bộ lưu trữ SAN truyền thống, ghi được ghi trực tiếp vào bộ lưu trữ bên dưới và sau đó được trả lại cho ứng dụng. Với các ứng dụng liên tục ghi dữ liệu mới, chủ yếu là các ứng dụng cơ sở dữ liệu lớn (SQL, v.v.), các đĩa quay truyền thống có thể theo kịp. Bộ nhớ đệm trên SSD trở thành một giải pháp cho phép ghi được ghi cục bộ và lưu vào bộ nhớ cache dựa trên tần suất của nhu cầu ứng dụng; tuy nhiên, có một số phương pháp cho mối quan hệ bộ nhớ cache ghi với bộ lưu trữ bên dưới gây ra sự khác biệt lớn về hiệu suất.

Đây là 3 hình thức viết I / O:

  1. Ghi xung quanh (xung quanh bộ đệm)
  2. Ghi qua (thông qua bộ đệm)
  3. Ghi lại (từ bộ đệm)

Tất cả ba hình thức có lợi ích khác nhau chủ yếu dựa trên loại dữ liệu được viết: tuần tự so với ngẫu nhiên. I / O tuần tự được tối ưu hóa nhất bởi đĩa bên dưới (ví dụ: tệp hoặc luồng video), trong khi I / O ngẫu nhiên được tối ưu hóa bởi bộ đệm. Hầu hết các thiết bị lưu trữ bộ đệm don don có trí thông minh động để thay đổi hình thức công nghệ viết dựa trên loại dữ liệu. Hãy để Lig hiểu sự khác biệt giữa ba hình thức viết I / O.


Viết xung quanh

Ghi xung quanh, còn được gọi là chế độ bộ đệm chỉ đọc, hoàn toàn có lợi để giải phóng không gian để đọc bộ đệm. I / O đến không bao giờ chạm vào bộ đệm. I / Os được ghi trực tiếp vào bộ nhớ vĩnh viễn mà không lưu trữ bất kỳ dữ liệu nào.

Điều gì có thể có thể là lợi ích của bộ đệm nếu nó được sử dụng? Nó giúp giảm bộ đệm bị tràn ngập với I / O ghi mà sau đó sẽ không được đọc lại, nhưng có một nhược điểm là yêu cầu đọc dữ liệu được ghi gần đây sẽ tạo ra một bộ nhớ cache nhớ cache và phải được đọc từ bộ nhớ lớn chậm hơn và phải được đọc từ bộ nhớ lớn chậm hơn và trải nghiệm độ trễ cao hơn. Nếu ứng dụng của bạn là giao dịch, vì hầu hết các ứng dụng quan trọng đều có, thì tốc độ ứng dụng sẽ chậm lại và hàng đợi I / O sẽ tăng lên. Về cơ bản, giá trị của chế độ này sẽ dành cho các trường hợp sử dụng hiếm vì nó tốn thời gian, chậm và không hiệu quả.

Viết qua

Phương pháp này thường được sử dụng trong các giải pháp lưu trữ và lưu trữ lai hiện nay. Ghi qua được gọi là chế độ bộ đệm đọc, nghĩa là tất cả dữ liệu được ghi vào bộ đệm và bộ nhớ bên dưới cùng một lúc. Việc ghi CHỈ được coi là hoàn thành một khi nó đã được ghi vào bộ lưu trữ của bạn. Âm thanh khá an toàn trên thực tế, nhưng có một nhược điểm về tốc độ.

Ở đây, vấn đề: Mỗi thao tác ghi được thực hiện hai lần, trong bộ đệm và sau đó trong bộ nhớ vĩnh viễn. Trước khi các ứng dụng có thể tiến hành, bộ lưu trữ vĩnh viễn phải trả lại cam kết I / O trở lại bộ đệm, sau đó quay lại các ứng dụng. Phương pháp này thường được triển khai cho khả năng phục hồi thất bại và để tránh thực hiện chiến lược chuyển đổi dự phòng hoặc HA với bộ đệm vì dữ liệu tồn tại ở cả hai vị trí. Tuy nhiên, Write-Through phát sinh độ trễ khi cam kết I / O được xác định bởi tốc độ lưu trữ vĩnh viễn, không phù hợp với tốc độ của CPU và kết nối mạng. Bạn chỉ có thể nhanh như thành phần chậm nhất của bạn và Write-Through có thể cực kỳ nghiêm trọng về tốc độ ứng dụng.

Không lỗi, không căng thẳng - Hướng dẫn từng bước của bạn để tạo ra phần mềm thay đổi cuộc sống mà không phá hủy cuộc sống của bạn

Bạn không thể cải thiện kỹ năng lập trình của mình khi không ai quan tâm đến chất lượng phần mềm.

Viết lại

Write-Back cải thiện kết quả của hệ thống về tốc độ - bởi vì hệ thống không phải chờ để ghi vào bộ nhớ cơ bản.

Khi dữ liệu được ghi vào, Write-Back sẽ đưa dữ liệu vào bộ đệm, một tất cả đã được thực hiện, và giữ dữ liệu để ghi vào đĩa lưu trữ sau đó.

Điều này giải quyết được rất nhiều vấn đề về độ trễ, bởi vì hệ thống không phải chờ đợi những bài viết sâu sắc.

Với sự hỗ trợ phù hợp, Write-Back có thể là phương pháp tốt nhất cho bộ nhớ đệm nhiều giai đoạn. Nó giúp khi bộ đệm có số lượng bộ nhớ lớn (tức là bộ nhớ được đo bằng terabyte, không phải gigabyte) để xử lý khối lượng lớn hoạt động. Các hệ thống tinh vi cũng sẽ cần nhiều hơn một ổ đĩa trạng thái rắn, có thể thêm chi phí. Nó cực kỳ quan trọng để xem xét các tình huống như mất điện hoặc các tình huống khác trong đó dữ liệu quan trọng có thể bị mất. Nhưng với tính năng bảo vệ bộ nhớ cache đúng, thì Write Write Back thực sự có thể tăng tốc một kiến ​​trúc với một vài mặt trái. Ví dụ, hệ thống Write-Back có thể sử dụng RAID hoặc các thiết kế dự phòng để giữ an toàn cho dữ liệu.

Thậm chí các hệ thống phức tạp hơn sẽ giúp bộ đệm và SAN hoặc đĩa lưu trữ bên dưới hoạt động với nhau trên cơ sở khi cần thiết, ủy thác ghi vào bộ lưu trữ sâu hoặc bộ đệm tùy thuộc vào khối lượng công việc của đĩa.

Triết lý thiết kế của Write-Back là một trong những phản ánh giải quyết vấn đề mà ngày nay các hệ thống xử lý dữ liệu tiên tiến mang lại cho các nhiệm vụ lớn. Bằng cách tạo ra một kiến ​​trúc phức tạp hơn và sử dụng bộ đệm theo cách phức tạp, Write-Back sẽ phá hủy các vấn đề về độ trễ và mặc dù nó có thể đòi hỏi nhiều chi phí hơn, nhưng nó cho phép hệ thống phát triển tốt hơn và giảm đau.