Làm cách nào để tôi có được tốc độ truyền USB tốt hơn trong (X) trên Ubuntu?


14

Khi tôi kết nối ổ USB 2.0 của mình với Xubfox và cố gắng truyền các tệp lớn, tốc độ truyền ban đầu rất tốt nhưng giảm sau vài giây xuống còn 1-2 Mib / s. Từ những gì tôi đọc được, việc chuyển nhanh lúc ban đầu chỉ là cho đến khi bộ nhớ cache đầy, sau đó tốc độ truyền USB thực sự được sử dụng.

Trong Windows, tốc độ không đổi ở khoảng 25Mib / s, cùng một thanh, được kết nối với cùng một cổng.

Đây là đầu ra từ dmesg khi kết nối thanh:

[ 5237.580084] usb 1-4: new high speed USB device using ehci_hcd and address 6
[ 5237.714318] scsi4 : usb-storage 1-4:1.0
[ 5238.713909] scsi 4:0:0:0: Direct-Access     SanDisk  Cruzer           8.02 PQ: 0 ANSI: 0 CCS
[ 5238.715264] sd 4:0:0:0: Attached scsi generic sg2 type 0
[ 5238.727225] sd 4:0:0:0: [sdb] Attached SCSI removable disk
[ 5242.308981] sd 4:0:0:0: [sdb] 31301631 512-byte logical blocks: (16.0 GB/14.9 GiB)
[ 5242.309589] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 5242.311228] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 5242.311238]  sdb: sdb1

Thanh được tự động hóa, đây là đầu ra của "mount":

/dev/sdb1 on /media/B82C-6B07 type vfat (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush)

Tôi phải sử dụng vfat vì tôi muốn chuyển tập tin sang hệ thống Playstation3 của mình. Althouth thử nghiệm dưới đây cho thấy, đây không phải là nguyên nhân chính.

Có vẻ như đây là một vấn đề phổ biến trong (X) ubfox. Tôi chưa tìm thấy một giải pháp rõ ràng nào. Có vẻ như cây gậy cần được gắn dưới dạng không đồng bộ thay vì tuôn ra nhưng tôi không chắc chắn chính xác làm thế nào để đạt được điều này. Tôi không phiền nếu tôi phải ngắt kết nối mỗi lần trước khi ngắt kết nối miễn là tốc độ truyền tốt hơn.

Có ý kiến ​​gì không?

Ngày 2 tháng 11: Báo cáo lỗi này dường như có liên quan: https://bugs.launchpad.net/ubfox/+source/linux/+orms/182931 . Điều khiến tôi lo lắng là vấn đề dường như đã hơn 2 tuổi và vẫn chưa được giải quyết.

Ngày 10 tháng 11: Tôi bắt đầu một bài kiểm tra đọc với palimpstest (từ dự án tiện ích gnome-đĩa). Điều này mang lại cho tôi tốc độ truyền tối thiểu 23 MBit / s. Cũng đã thử nó trong krusader bây giờ, tốc độ đọc liên tục> 20 MBit / s. Vì vậy, vấn đề thực sự chỉ là viết vào thanh!

Dưới đây là hình ảnh của bài kiểm tra đọc-ghi trong cùng một chương trình:

nhập mô tả hình ảnh ở đây

Tôi đã phải xóa hoàn toàn hệ thống tập tin trước khi thử nghiệm cho thấy vfat không phải là nguyên nhân chính như đã đề cập ở trên.

Một gợi ý khác: Nếu tôi chuyển tệp 100 MB, một khi nó ở mức 100%, sẽ mất một thời gian dài bất thường để thực sự hoàn tất việc chuyển. Điều này một lần nữa cho tôi thấy rằng tập tin thực sự nằm trong bộ đệm nhưng việc ghi vào thiết bị usb rất chậm.

Ngày 12 tháng 11: "Tin tốt". Các vấn đề dường như là bộ nhớ dính chính nó. Thử ổ cứng ngoài (My Book Elite 1TB) cho tôi tốc độ ghi liên tục khoảng 20 MiB / s. Lần đầu tiên tôi cố gắng định dạng lại thẻ nhớ của mình để tôi thực sự có thể so sánh hai (tập tin sytems khác nhau). Sau khi định dạng lại, cả hai ổ đĩa được gắn chính xác theo cùng một cách:

/dev/sdb1 on /media/My Book type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sdc1 on /media/cruzer_ type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)

Cruzer là cây gậy (tốc độ vẫn giảm sau vài giây), My Book là ổ cứng ngoài với tốc độ ghi không đổi 20 MiB / s.

Khó có thể nói vấn đề thực sự là gì sau đó. Như tôi đã nói, trong Windows tôi cũng có tốc độ ghi nhanh tương đương với SanCruzer.

Chỉnh sửa khi kết thúc tiền thưởng: Thật không may, vấn đề với cây gậy vẫn chưa được giải quyết. Tuy nhiên, sau 7 ngày tôi muốn thưởng tiền thưởng tất nhiên. Nhận xét từ aking1012 thực sự hữu ích vì nó làm sáng tỏ vấn đề mới. Tuy nhiên, tôi cảm thấy rằng tôi phải đưa tiền thưởng cho harrymc khi anh ấy cho thấy nỗ lực nhất để giải quyết vấn đề. Cảm ơn tất cả.


ocaoimh.ie/ubfox-linux-slow-external-usb-drive Hy vọng điều này sẽ giúp =)

1
có sự khác biệt giữa tốc độ ghi cho ổ đĩa flash và HD bên ngoài thực sự không ... chỉ là một câu hỏi
RobotHumans

Ý tưởng tuyệt vời Cảm ơn rất nhiều cho tipp, xin vui lòng xem kết quả trong bản cập nhật của tôi (ngày 12 tháng 11). Vấn đề chưa được giải quyết, nhưng điều này thực sự thu hẹp nó!
pgruetter

FWIW, flushtùy chọn trong đầu ra gắn kết của bạn không có khả năng giúp đỡ. Tôi nghĩ điều đó thậm chí còn tồi tệ hơn sync.
beldaz

Câu trả lời:


11

Bài viết Tốc độ truyền khối lượng lớn chậm USB 2.0 cho thấy đây có thể là sự cố của thiết bị được gắn theo mặc định với tùy chọn đồng bộ hóa:

Bạn có Biểu tượng "Thiết bị" trên Màn hình không?
Nếu vậy, mở nó. Nếu không, hãy thử mở phương tiện: / trong konqueror.

Chọn thiết bị sau đó -> Thuộc tính -> Gắn (thẻ) và bỏ chọn hộp Đồng bộ. (Điều này được ghi nhớ, vì vậy bạn chỉ cần thực hiện một lần trên mỗi thiết bị).


Một số ý tưởng khác đến từ báo cáo lỗi Viết qua hdd bên ngoài khiến việc viết rất chậm

  • bạn thay đổi thành async khi chạy bằng 'sudo mount -o remount, async / dev / sda1' (hoặc bất cứ điều gì phân vùng được gắn kết của bạn là / are)
  • bạn tạo một mục nhập fstab cho sda để gắn kết nó không đồng bộ (điều này đòi hỏi thiết bị luôn được cắm vào lúc khởi động)
  • bạn thay đổi 'đồng bộ hóa' thành 'không đồng bộ' trong nguồn pmount và xây dựng lại gói

Xem thêm các cuộc thảo luận trong bài viết liên quan đến pmount, nếu điều này áp dụng cho hệ thống của bạn.


Một giải pháp kỳ diệu khác đến từ USB 2.0 ghi chậm nhưng đọc nhanh, giải pháp nào? và liên quan đến việc gắn kết lại:

Khi tôi gắn ổ USB vào / dev / sdc1 với dòng sau

/dev/sdc1       /mnt/sdc1     auto    sync,noauto,user,exec     0       0

trong / etc / fstab và cố gắng sao chép tệp 5,2 MB vào ổ đĩa từ đĩa cứng cục bộ, sau đó sau toàn bộ một phút, 244 KB đã được chuyển. Sao chép tệp 29 MB từ ổ đĩa ngoài sang ổ đĩa cục bộ mất khoảng 10 giây.

Sau đó, nếu tôi ngắt kết nối nó, hãy thay đổi dòng trong / etc / fstab thành

/dev/sdc1       /mnt/sdc1     auto    noauto,user,exec     0       0

sau đó sao chép tệp 29 MB vào đĩa bên ngoài mất một phần không thể nhận thấy trong một giây. Tương tự với sao chép vào đĩa cục bộ từ đĩa bên ngoài.


Xem bài viết này và tham khảo "usbtree". Nó cho biết cách kiểm tra xem usb có hoạt động như 1.1 hay 2.0 không:

Linux và USB 2.0 .


Có vẻ như điều này là cụ thể cho KDE. Tôi đang sử dụng XFCE4 (Xubfox). Dù sao thì tôi cũng đã thử gợi ý, vì Konquerer đã được cài đặt. phương tiện mở: / cho tôi ngoại lệ "Giao thức không được hỗ trợ". Bất kỳ cách nào khác tôi có thể tìm ra nếu nó được gắn "async" hoặc "sync"?
pgruetter

Tôi đã thêm một bài viết hữu ích.
harrymc

Remount không làm gì cả. Đầu ra của "mount" vẫn giống nhau. Xem tin nhắn ban đầu của tôi cho nó. Tôi cũng đã cố gắn nó với pmount bây giờ, cảm ơn vì lời đề nghị. Sự trợ giúp của các trạng thái pmount, mặc định nó gắn kết không đồng bộ. Tuy nhiên, tốc độ truyền tải rất nhanh trước và giảm sau vài giây. Tôi bắt đầu tin rằng chiếc gậy thực sự được gắn không đồng bộ nhưng vấn đề là ở một nơi khác!?
pgruetter

Đã thêm một lần thử.
harrymc

Cảm ơn harrymc, thực sự đánh giá cao nỗ lực liên tục của bạn. Thật không may, vẫn không có cơ hội. Tôi đã thử nó với các cài đặt được đề cập trong / etc / fstab và gắn nó. Nếu tôi thử tùy chọn đồng bộ hóa, nó thậm chí còn tệ hơn. Tôi chỉ nhận được khoảng 100-200 Kib / s. Không có tùy chọn đồng bộ hóa, nó vẫn giống nhau: nhanh khi bắt đầu, giảm xuống còn 1-2 MiB / s.
pgruetter

2

Truy cập vào ổ đĩa thường được đệm trong chế độ không đồng bộ. Sự bùng nổ nhanh ban đầu có khả năng vào bộ nhớ cache. Tốc độ chậm là tốc độ ghi thực tế.

Nếu bạn có thẻ USB nhấp nháy trong khi chuyển, hãy thử một số thử nghiệm. Tôi thấy việc viết có thể tiếp tục trong một thời gian sau khi bản sao được hoàn thành.

Gắn kết ở chế độ không đồng bộ thay vì chế độ đồng bộ hóa cho phép bản sao xuất hiện để tiến hành nhanh hơn, nhưng không mang lại cho bạn sự bảo mật tương tự như dữ liệu được sao chép thực sự được chuyển.

Kiểm tra các tùy chọn trong man mount. Một số định dạng cho phép cập nhật siêu dữ liệu (thư mục, bảng phân bổ tệp, v.v.). Điều này sẽ cắt giảm lượng dữ liệu cần được sao chép. Điều này làm tăng nguy cơ mất dữ liệu một chút.


Cảm ơn thông tin, điều này thực sự xác nhận các giả định của tôi. Ổ đĩa nhấp nháy liên tục trong quá trình chuyển, mặc dù vậy nó không nhấp nháy lâu sau khi chuyển. Tôi nghi ngờ điều này chỉ là do trình quản lý tập tin vẫn đang truy cập vào thanh. Bảo mật sẽ không phải là vấn đề lớn, tôi thực sự chỉ quan tâm đến tốc độ. Thú vị về siêu dữ liệu, tôi sẽ kiểm tra điều đó. Mặc dù, bạn có nghĩ rằng điều này sẽ thay đổi bất cứ điều gì khi chuyển các tệp lớn (500 MiB)?
pgruetter

Ngoài ra, những gì vẫn đánh đố tôi, tại sao nó rất nhanh với ổ cứng ngoài mà không phải với cây gậy? Các tùy chọn gắn kết hoàn toàn giống nhau, tôi đã chuyển chính xác tệp thử nghiệm.
pgruetter

1
Ghi 4 KiB vào ổ cứng thường là ghi 4 KiB, được thực hiện bởi bộ điều khiển đĩa cứng. Ghi 4 KiB vào bộ nhớ Flash thường là 128 KiB đọc vào một số bộ lưu trữ tạm thời, ghi đè 4 KiB ở độ lệch chính xác của bộ lưu trữ tạm thời đã nói, thao tác xóa 128 KiB và ghi 128 KiB, tất cả các cách trên được thực hiện bởi Bộ điều khiển bộ nhớ flash. Nhiều hơn hoặc ít hơn :)
tzot

1

Vì vậy, tôi đã đến trang này thông qua một tìm kiếm google về cùng một vấn đề ("ubfox 15 tăng tốc độ chuyển usb") vì các giao dịch chuyển tiền của tôi đang chạy ở tốc độ 75kb / s.

Đây có lẽ chỉ là giải pháp cho thiết lập của tôi nhưng ổ USB 3 GB 16 GB của tôi đã được định dạng thành GPT fat32, tôi đã xóa tất cả các phân vùng, khởi tạo thành MBR, tạo một phân vùng NTFS, cắm lại vào PC Ubuntu của tôi và giờ nó đang chuyển một tệp 10 GB ở tốc độ trên 50MB / s. Đối với tôi, vấn đề được giải quyết.


Khẳng định rằng đối với Mint 18.3 (Ubuntu 16.04), việc chuyển từ fat32 sang ntfs là một sự cải tiến lớn.
Quạ

0

Chúng ta cần đảm bảo rằng hệ thống cố gắng ghi vào các khối chương trình / xóa khối. Với bộ nhớ flash hiện đại, chúng thường có kích thước 1M-4M. Để làm điều này, bạn muốn đảm bảo rằng FS của bạn được căn chỉnh để xóa các khối và giao diện đó cho phép chuyển toàn bộ khối trong một lần (đối với các gậy giá rẻ). Nếu không, chúng tôi sẽ nhận được khuếch đại ghi, vì hệ thống cố gắng ghi trong các khối nhỏ hơn, xóa khối (thực hiện đọc / mod / ghi) + sắp xếp sai khối.

Để kiểm tra cài đặt hiện tại của bạn, hãy làm:

cat /sys/block/sd**X**/device/max_sectors

Bạn có thể điều chỉnh quy tắc hội trường cho các thiết bị đó. Xem /unix/67719/change-value-of-usb-max-sector-for-an-entire-family-of-devices .

Trong trường hợp này, tôi đã thay thế max_sector cho tất cả các thiết bị, sử dụng mặc định 240 (lưu trữ USB) thành 32K sector hoặc 2K sector:

(sử dụng == để kiểm tra và = để gán):

Trên hệ thống của tôi (Mageia 4, 3.14.24 lõi i7) tôi đã phải thực hiện việc này do tốc độ ghi quá chậm (2MB / giây) trên Kingston DT101 G2 16GB:

vi /usr/lib/udev/rules.d/81-udisks_maxsect.rules và thêm:

SUBSYSTEMS == "scsi", ATTR {max_sector} == "240", ATTR {max_sector} = "32678"

Và tốc độ ghi dd tăng gấp 3 lần :-) mc cp có thể tăng 10-20 lần (sau khi tôi đã bắt đầu phân vùng đầu tiên @ 8192'th sector và được định dạng lại với cụm 64k được căn chỉnh):

fdisk -u /dev/sdh (tắt DOS compat nếu bật),

mkfs.vfat /dev/sdh1 -n KINGSTON16G -s 128 **-R 4592**và sử dụng fsck.vfat -v /dev/sdh1để kiểm tra căn chỉnh (kiểm tra [khu vực bắt đầu dữ liệu] phải là bội số của 128 (kích thước cụm)). Điều chỉnh số lượng các khu vực dành riêng (-R) nếu cần.

Max_sector mặc định (240) dường như gây ra sự khuếch đại ghi cao trên một số ổ đĩa mới giá rẻ. Nhưng hãy cẩn thận với cài đặt cao như vậy, hiệu ứng tương tự đạt được ở 2048 cung (có thể là các khối xóa 1M:

SUBSYSTEMS == "scsi", ATTR {max_sector} == "240", ATTR {max_sector} = "2048"

Kiểm tra tất cả các thiết bị USB cũ của bạn, rằng chúng vẫn hoạt động tốt. Sử dụng các thuộc tính nhà cung cấp / mô hình trong các tệp quy tắc để cụ thể hơn.

PS: Nếu sử dụng ext3 / 4:

Vô hiệu hóa Nhật ký và đặt stride / Stripe_creen cho mkfs.ext3:

mkfs.ext3 -O ^ has_journal -E stride = [đọc các khối fs trang] -E sọc-width = [xóa khối fs khối]


0

Tôi cũng gặp một số vấn đề với tốc độ truyền trên đĩa ngoài WD, sau khi mở nó trong windows SO, tôi luôn sử dụng LINUX, sau đó tốc độ truyền tải là 1,5mb / giây so với khi tôi ngắt kết nối ổ cứng ngoài, chạy dmesg ở đó đang nói rằng sdb1 nó không được cập nhật, đã chạy một fsck, đã thực hiện một vài sửa chữa và sau đó 20mb / s tốc độ truyền tải một lần nữa khi copiyng từ sda sang đĩa bên ngoài.
"fsck luôn là một rủi ro nếu bạn có dữ liệu, nhưng nó hoạt động với tôi, không mất dữ liệu"


0

Kiểm tra, thực sự kiểm tra xem thiết bị của bạn có được cắm vào cổng USB hỗ trợ tốc độ tối đa không.

Mặc dù điều này nghe có vẻ ngớ ngẩn, đôi khi mọi thứ bị lẫn lộn. Một số bo mạch chủ có cổng tốc độ cao và thấp. Sử dụng một công cụ như usbview (lưu ý để thực thi nó với quyền siêu người dùng sudo usbview) để xác minh rằng thiết bị của bạn đang hoạt động ở mức 480Mb / s (USB 2.0) trở lên.

Ví dụ: khi bạn thường cắm thiết bị của mình qua một số dây mở rộng, một hub trên màn hình, v.v., điều đó có thể xảy ra - sau khi cắm lại cáp trên máy tính để bàn của bạn hoặc do đó - bạn vô tình cắm vào hub ở tốc độ thấp Cổng (USB 1.). Sau đó, bất kỳ thiết bị nào được cắm vào trung tâm sẽ hoạt động ở tốc độ thấp, trong khi các thiết bị khác, cắm vào một nơi khác, hoạt động ở tốc độ cao. Có thể rất khó hiểu - và là một điều phần cứng đơn giản ... Đã xảy ra với tôi một lần và không liên quan đến bất kỳ mô-đun hạt nhân USB nào, tùy chọn gắn kết hoặc như vậy.

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.