Tôi có một khóa USB ( PQI U822V-Speedy 32G ) mà tôi đang cố gắng điểm chuẩn nhanh trên Linux. Tôi đang thử viết bandwith.
dd trên phân vùng thô
Tôi đã tạo một phân vùng bắt đầu từ sector 2048, sau đó thực hiện ghi tuần tự 4 GB:
dd if=/dev/zero of=/dev/sdb1 bs=1M count=4096
Tôi nhận được ~ 22 MB / s.
Tôi cũng đã thử một vài (4) ddchạy song song như ở trên nhưng sử dụng count=1024và seek=tùy chọn để ghi vào các khu vực khác nhau của ổ đĩa. Kết quả tương tự.
dd trên hệ thống tập tin
Tuy nhiên, khi tôi định dạng sdb1phân vùng bằng ext4hoặc NTFS, và sao chép các tệp lớn vào đó (có thực hoặc /dev/zero), như thế này:
time dd if=/dev/zero of=/media/USBKEY/file.bin bs=1M count=4096 ; time sync
Tôi đạt được> 66 MB / s như quảng cáo của nhà sản xuất. Tất nhiên, tôi đã xem xét syncthời lượng ngay sau khi sao chép.
Tại sao có sự khác biệt hiệu suất lớn như vậy?
ddđối số nhưng với các đối số tìm kiếm cao hơn để ghi vào các phần khác nhau của đĩa.
rsync --bwlimitkhi sao chép tập tin thực sự có thể giúp đỡ . Nó có vẻ giống như bị kẹt xe: nếu Linux cố gắng đưa quá nhiều dữ liệu xuống cổ họng của thiết bị USB, thì nó thực sự bị chậm và chậm cho đến khi tôi tạm dừng bản sao trong khi bộ đệm bị xóa. (đây là với thanh USB giá rẻ).
o/iflag=nocachegì? Ngoài ra còn códirectvàsynctùy chọn có liên quan - tôi luôn luôn sử dụngsyncít nhất là với usb chỉ vì vậy tôi có thể chắc chắn không để kéo ưu quá sớm. Và nếu bạn đang sử dụngsyncthì có thể xem liệu bạn có thể có được tốc độ tương tự vớinonblock