Tại sao 4k đọc trong điểm chuẩn hdd / ssd chậm hơn so với ghi?


12

Có một số công cụ điểm chuẩn có sẵn để kiểm tra tốc độ của ổ đĩa pc.

Dưới đây là ví dụ về điểm chuẩn của SSD SSD:

  • Đọc tuần tự: 718.498 MB / s
  • Viết tuần tự: 777.414 MB / s
  • Đọc ngẫu nhiên 512KB: 160,541 MB / s
  • Viết ngẫu nhiên 512KB: 838.930 MB / s
  • Đọc ngẫu nhiên 4KB (QĐ = 1): 26.985 MB / s [6588.1 IOPS]
  • Viết ngẫu nhiên 4KB (QĐ = 1): 135.603 MB / s [33106.2 IOPS]
  • Đọc ngẫu nhiên 4KB (QĐ = 32): 177.003 MB / s [43213.6 IOPS]
  • Viết ngẫu nhiên 4KB (QĐ = 32): 178.397 MB / s [43554.0 IOPS]

SSD m.2:

  • Đọc tuần tự (Q = 32, T = 1): 829.119 MB / s
  • Viết tuần tự (Q = 32, T = 1): 677.645 MB / s
  • Đọc ngẫu nhiên 4KiB (Q = 32, T = 1): 744.328 MB / s [181720.7 IOPS]
  • Viết ngẫu nhiên 4KiB (Q = 32, T = 1): 144.876 MB / s [35370.1 IOPS]
  • Đọc tuần tự (T = 1): 785.600 MB / s
  • Viết tuần tự (T = 1): 789.973 MB / s
  • Đọc ngẫu nhiên 4KiB (Q = 1, T = 1): 56.585 MB / s [13814.7 IOPS]
  • Viết ngẫu nhiên 4KiB (Q = 1, T = 1): 170.449 MB / s [41613.5 IOPS]

Ổ cứng

  • Đọc tuần tự: 114.988 MB / s
  • Viết tuần tự: 111.043 MB / s
  • Đọc ngẫu nhiên 512KB: 39.260 MB / s
  • Viết ngẫu nhiên 512KB: 57,40 MB / s
  • Đọc ngẫu nhiên 4KB (QĐ = 1): 0,546 MB / s [133,4 IOPS]
  • Viết ngẫu nhiên 4KB (QĐ = 1): 0,757 MB / s [184,9 IOPS]
  • Đọc ngẫu nhiên 4KB (QĐ = 32): 1.582 MB / s [386.3 IOPS]
  • Viết ngẫu nhiên 4KB (QĐ = 32): 0,700 MB / s [171,0 IOPS]

Trong mọi trường hợp "Đọc ngẫu nhiên 4KB Q1" chậm hơn ghi và trong hầu hết các trường hợp thì ngược lại với "QĐ32".

Trong một số diễn đàn, mọi người nói rằng hạn chế về cấu trúc chip SSD, nhưng như các ổ cứng thông thường cho thấy hành vi tương tự thì dường như đó là một lý do khác?!

Câu trả lời:


9

TL; DR: Đó là do SSD đang nói dối bạn và nói rằng việc ghi được thực hiện trước đó. Nó không thể thoát khỏi điều tương tự cho việc đọc.

Phiên bản dài hơn của câu trả lời là ghi bộ đệm.

Hãy bắt đầu với trường hợp QĐ1. SSD sẽ báo cáo việc ghi là đã hoàn thành với HĐH sau khi nhận được dữ liệu và lưu nó vào bộ đệm cục bộ trên ổ đĩa, nhưng trước khi nó thực sự ghi nó vào NAND. Điều này tạo ra sự khác biệt lớn vì thực sự việc ghi dữ liệu lên NAND khá chậm. Để đọc, nó thực sự phải đọc dữ liệu từ NAND trước khi có thể gửi lại (trừ khi nó đã đọc trước đó và vẫn còn trong bộ đệm, nhưng điều đó rất khó xảy ra với các lần đọc ngẫu nhiên).

Nhược điểm của điều này là trong trường hợp mất điện đột ngột, có thể mất dữ liệu ghi vào ổ SSD nhưng chưa được đưa vào NAND. Một số ổ SSD doanh nghiệp bao gồm một siêu tụ điện lưu trữ đủ năng lượng để hoàn thành việc ghi dữ liệu trong bộ nhớ cache vào NAND trong trường hợp mất điện đột ngột.

Bạn thấy điều tương tự cho các ổ đĩa cứng bởi vì chúng cũng đang thực hiện ghi bộ nhớ đệm. Họ chỉ không gần như hung hăng về nó. Tại sao SSD lại hung hăng như vậy? Để trả lời rằng chúng ta cần chuyển sang xem xét trường hợp QĐ32, điều này vừa phức tạp hơn vừa thú vị hơn.

Điều đó không đúng với những gì bạn nói rằng việc đọc ngẫu nhiên thường nhanh hơn so với việc viết ngẫu nhiên tại QĐ32. Nó phụ thuộc rất nhiều vào loại SSD cụ thể mà bạn nhìn vào.

Nếu bạn nhìn vào 4k QĐ1 đọc ngẫu nhiên trên nhiều ổ SSD SATA thì tất cả dường như đều hoạt động trong phạm vi 20-30 MB / s. Tại sao vậy? Đó là bởi vì 4k QĐ1 đọc ngẫu nhiên chủ yếu là về độ trễ và không thông lượng. Độ trễ đến từ ba phần:

  1. Độ trễ giao diện của SATA / AHCI liên quan đến việc báo cho ổ đĩa biết phải làm gì và gửi dữ liệu.
  2. Bản thân bộ điều khiển phải tìm ra phải làm gì với dữ liệu và hướng dẫn mà nó đã nhận được.
  3. Thời gian cần thiết để thực sự đọc hoặc ghi dữ liệu vào một cái chết NAND.

Không phải 1. hoặc 3. đã thay đổi nhiều trong một thời gian dài và đó là lý do tại sao số lần đọc ngẫu nhiên 1k QĐ1 cũng không thay đổi nhiều.

Sự thay đổi gần đây của SSD từ SATA / AHCI sang PCIe / NVMe đã làm giảm đáng kể độ trễ của 1., đó là lý do tại sao một số SSD m.2 và PCIe gần đây đã cho thấy những cải tiến lớn ở đây.

Một điều mà bộ điều khiển SSD có thể làm để hỗ trợ rất nhiều cho độ trễ là đọc hoặc ghi vào nhiều NAND chết song song và theo cách đó che giấu hầu hết độ trễ là 3. Nếu bạn đang đọc ngẫu nhiên QĐ32 4k với NCQ, SSD có thể phục vụ việc đọc yêu cầu không theo thứ tự và đảm bảo rằng nó đang đọc từ càng nhiều NAND chết song song càng tốt.

Đối với QĐ32 4k ghi ngẫu nhiên, SSD thực hiện một cái gì đó gọi là ghi kết hợp. Khi có rất nhiều yêu cầu ghi nhỏ xuất hiện trong bộ điều khiển SSD, chúng sẽ lưu trữ cục bộ và khi bộ đệm ghi đủ lớn đã tạo ra bộ điều khiển sẽ chia nó thành các phần có kích thước độc đáo và ghi lại các khối cho nhiều NAND chết song song để giúp che dấu Độ trễ NAND. Một ưu điểm khác của kết hợp ghi là hầu hết các ổ SSD hiện nay đều có kích thước trang (số lượng nhỏ nhất có thể đọc hoặc ghi) lớn hơn 4k và kết hợp ghi cho đến khi bạn đạt được kích thước trang giúp tránh được nhiều khuếch đại ghi. Đó là để làm những điều này mà SSD rất tích cực trong việc ghi bộ nhớ đệm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.