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) dd
chạy song song như ở trên nhưng sử dụng count=1024
và 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 sdb1
phân vùng bằng ext4
hoặ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 sync
thờ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 --bwlimit
khi 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=nocache
gì? Ngoài ra còn códirect
vàsync
tù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ụngsync
thì có thể xem liệu bạn có thể có được tốc độ tương tự vớinonblock