Tại sao tốc độ ổ đĩa flash của tôi chậm lại khi sao chép?


27

Sau vài phút sao chép, nó càng ngày càng chậm. Tại sao?

ví dụ: Nó bắt đầu với 20 MByte / giây và khi kết thúc với nó, đó là @ 10 MByte / s.

Nhiều tập tin, lớn, nhỏ, v.v.

CẬP NHẬT: câu hỏi liên quan đến các hệ điều hành khác nhau, vì vậy đây là "câu hỏi chung"


Bạn sao chép bao nhiêu so với dung lượng bộ nhớ còn trống trong máy tính?
KCotreau

PC -> Ổ USB-FLASH: miễn phí vài trăm GB -> vài GB miễn phí
LanceBaynes

1
Tôi nghi ngờ rằng ban đầu bạn có các tệp được lưu trong bộ nhớ để chúng chuyển nhanh và sau đó khi chúng bắt đầu được di chuyển khỏi ổ cứng, nó sẽ chậm lại. Tôi không thể chắc chắn trong trường hợp của bạn mặc dù.
KCotreau

vì vậy, bạn khuyên tôi nên sử dụng lệnh "đồng bộ hóa" thường xuyên hơn?
LanceBaynes

Tôi không hiểu ý của bạn bằng lệnh đồng bộ hóa. Bạn đã không có bối cảnh cho câu hỏi. Tôi thậm chí không chắc hệ điều hành.
KCotreau

Câu trả lời:


25

Hành vi này không dành riêng cho ổ đĩa flash của bạn, bạn cũng có thể thấy điều này với các ổ đĩa cứng. Nó phải làm với cơ chế lưu trữ hầu hết các hệ điều hành và đĩa sử dụng để tăng tốc độ ghi nhỏ.

20mb / s bạn thấy là dữ liệu được ghi vào bộ đệm đĩa (thường là bộ nhớ nhanh nhưng nhỏ). Khi bộ đệm này đầy, nó phải được xóa vào đĩa - và bây giờ bạn đang bị tắc nghẽn bởi đĩa chậm hơn.

Ví dụ 1: Hiệu ứng thực sự rõ rệt khi bạn có bộ điều khiển có bộ đệm lớn (như bộ điều khiển RAID5 tốt) trong đó ~ 500mb dữ liệu có thể được lưu trữ nhanh chóng trước khi phải xóa vào đĩa.

Ví dụ 2: Bạn có thể thấy bộ đệm khi phát nếu bạn rút ổ flash ra cùng lúc với bản sao tệp "đã hoàn thành". Tại thời điểm này, tệp của bạn được phân chia giữa đĩa và bộ đệm - vì vậy bản sao đã "kết thúc" theo như hệ điều hành có liên quan nhưng bộ điều khiển đĩa vẫn cần ghi những gì còn lại trong bộ đệm vào đĩa. Nếu bạn đặt ổ đĩa flash trở lại và kiểm tra tập tin, bạn sẽ thấy nó không ở đó.

Tuyên bố miễn trừ trách nhiệm: Những ví dụ này sẽ không hoạt động nếu bạn không kích hoạt ghi bộ đệm trong hệ điều hành / trên đĩa.

Hơn nữa, nếu đó không phải là bộ nhớ đệm đĩa tại nơi làm việc thì có khả năng những gì bạn đang thấy là một hiệu ứng của sự phân mảnh. Khi đĩa trở nên đầy đủ hơn và đầy đủ hơn, không gian trống liền kề có sẵn và hệ thống tệp phải làm việc nhiều hơn để tìm vị trí đặt tệp của bạn.


Cũng nên nhớ nó là một ổ đĩa flash. Phần cứng của nó không bao giờ được tối ưu hóa cho tốc độ, mà là khả năng chi trả.
Surfasb

Tôi không nghĩ rằng điều đó sẽ giải thích tại sao hiệu suất sẽ giảm trong các bản sao tệp dài. Thay vào đó hiệu suất sẽ giảm trong vòng đời của ổ đĩa, đúng không?
ta.speot.is

Nó làm cho ý nghĩa hoàn hảo. Chúng được tối ưu hóa cho tốc độ bùng nổ, không duy trì hoạt động. Hãy nghĩ về kích thước trung bình của các tệp được tải vào ổ đĩa flash. Bạn sẽ tối ưu hóa cho việc truyền tệp dài 30 giây hay tối ưu hóa cho việc chuyển dài 2 giây? Thêm vào hai ví dụ của bạn, và nó giải thích rất nhiều.
Surfasb

Giống như khi bạn cố gắng nhồi nhét hai người qua một cánh cửa trung bình tại một thời điểm. Lúc đầu, bạn có thể tính toán. Wow, tôi đã đi từ không người qua cửa đó đến hai người một lúc. Tốc độ của tôi rất tuyệt Sau đó, dòng sẽ dài hơn và lấy mẫu của bạn trở nên tốt hơn và cuối cùng bạn nhận ra rằng mẫu nhỏ = toán xấu. . .
Surfasb

@ ta.speot.is Tôi cho rằng bộ đệm đĩa này mà bạn đề cập được xử lý bởi HĐH trên đĩa cứng và khác với bộ đệm phần cứng mà ổ cứng có bên trong, phải không?
sepehr

1

Trong khi bộ nhớ đệm gây ra một số điều này, nó không phải là yếu tố duy nhất. Nếu bộ nhớ đệm là yếu tố duy nhất, thì chúng ta sẽ hy vọng tốc độ ghi sẽ nhanh chóng giảm từ vài trăm MB / giây xuống tốc độ ghi thực tế của ổ đĩa rất nhanh và duy trì ở đó cho phần còn lại của ghi. Tuy nhiên, đây không phải là những gì tôi đã quan sát thấy khi thực hiện chuyển khoản lớn đến và từ đĩa (ví dụ: ghi hình ảnh khởi động). Thay vào đó, những gì tôi quan sát được là tốc độ giảm dần trong toàn bộ hoạt động.

Sự chậm chạp này là do sự phục hồi dữ liệu trên (các) chip flash được sử dụng để lưu trữ dữ liệu đòi hỏi một số khối được ghi nhiều lần.

Bên trong một con chip flash, có khối dữ liệu có thể được ghi vào. Khi viết, chỉ có hai điều mà máy tính có thể làm: nó có thể xóa toàn bộ một khối hoặc thay đổi một số (hoặc tất cả) các bit trong một khối từ 0 thành 1.

Tuy nhiên, một số khối đó tốt hơn các khối khác, đặc biệt là trong các ổ flash chất lượng thấp hơn và kết quả là khi ghi dữ liệu mới vào nó, một số bit đôi khi có thể tự chuyển về 0 ngay sau khi được ghi và don không thay đổi Do đó, khi ghi vào một khối, HĐH cần kiểm tra để đảm bảo rằng tất cả dữ liệu đã được viết chính xác và nếu không phải làm lại khối đó bằng cách ghi cùng một dữ liệu vào cùng một khối ba hoặc ba lần cho đến khi các thanh dữ liệu.

Vì vậy, khi máy tính của bạn đang ghi một loạt dữ liệu vào ổ đĩa flash, đây là một lời giải thích (không hoàn toàn chính xác, nhưng đủ tốt) cho cách thực hiện điều đó:

  1. Lấy tập hợp các khối đầu tiên được viết và viết tất cả chúng.
  2. Đọc lại tất cả các khối chúng tôi vừa viết và lập danh sách các khối không khớp
  3. Viết bộ khối tiếp theo, cùng với các khối không được viết chính xác lần trước.
  4. Lặp lại 2-3 cho đến khi tất cả các khối đã được viết chính xác.

Khi máy tính ghi vào ổ đĩa, nó sẽ báo cáo tốc độ ghi khối vào ổ đĩa lần đầu tiên. Vì nó cũng sẽ phải viết lại các khối trước đó cùng một lúc, tổng thông lượng có thể được sử dụng cho các khối còn lại sẽ giảm khi số lần viết lại cũng cần phải xảy ra tăng lên. Do đó, tốc độ ghi rõ ràng giảm theo thời gian.


Tôi đang viết một tệp 12 Gig 7zip vào ổ flash USB 3.0 hoàn toàn mới được định dạng là NTFS. Nó đã đi khoảng 100 MB / giây trong phút đầu tiên sau đó giảm xuống còn 25 MB MB / giây trong khoảng một phút, sau đó giảm xuống còn 11 hoặc hơn trong khoảng 10 phút. Đó không phải là một dốc xuống dần dần, nó là 3 cao nguyên khác biệt.
Eric

Tôi đã sao chép kho lưu trữ từ máy tính xách tay i7 cũ của tôi với 16 Gigs RAM. Sao chép cùng một kho lưu trữ 7zip này từ cùng một ngón tay cái trên máy tính xách tay Xeon mới của tôi với 32 Gigs RAM mất 2 phút và không bị giảm tốc độ.
Eric

0

Khi tệp được ghi vào ổ đĩa, đó là ổ USB flash hoặc ổ cứng, dữ liệu KHÔNG / KHÔNG BAO GIỜ đọc lại để xem nó có khớp không. Điều đó sẽ mất mãi mãi. việc xác minh ghi được thực hiện bởi phần cứng (Kiểm tra dự phòng chu kỳ) và nếu xảy ra lỗi, nó sẽ được gửi lại cho ứng dụng từ phần cứng phát hiện ra lỗi. Việc đình trệ xảy ra và chậm lại (thậm chí tạm dừng) là do CPU ghi nhanh hơn thiết bị có thể xử lý. Bạn sẽ không tìm thấy điều này xảy ra với các ổ đĩa cứng nội bộ. Bạn sẽ không bao giờ thấy những gì đang thực sự xảy ra trên HĐH Windows nhưng trên Linux bạn thực sự có thể thấy rằng CPU tạm dừng cho đến khi phần cứng USB thông báo OK để tiếp tục


Sự khác biệt về tốc độ ghi của các thiết bị lưu trữ khác nhau có thể là cực kỳ, ví dụ, so sánh tốc độ ghi của thẻ SD cũ với tốc độ ghi của SSD SATA III.
karel

3
Xin hãy kiềm chế những lời lăng mạ cá nhân. Mặc dù bài đăng của bạn có thể đúng, bạn phải chỉnh sửa nó để tuân thủ các tiêu chuẩn cộng đồng của chúng tôi.
Bến N
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.