Ketika saya menghubungkan drive USB 2.0 ke Xubuntu dan mencoba mentransfer file besar, kecepatan transfer awalnya bagus tetapi turun setelah beberapa detik menjadi 1-2 Mib / s. Dari apa yang saya baca, transfer cepat di awal hanya sampai cache penuh, maka kecepatan transfer USB yang sebenarnya digunakan.
Di Windows, kecepatannya konstan sekitar 25Mib / s, stik yang sama, terhubung ke port yang sama.
Ini adalah output dari dmesg saat menghubungkan tongkat:
[ 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
Stik diautount, berikut ini adalah output dari "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)
Saya harus menggunakan vfat karena saya ingin mentransfer file ke sistem Playstation3 saya. Meskipun tes di bawah ini menunjukkan, bahwa ini bukan penyebab utama.
Tampaknya ini adalah masalah umum di (X) ubuntu. Saya belum menemukan solusi yang jelas. Tampaknya tongkat harus dipasang sebagai async bukan flush tapi saya tidak yakin bagaimana cara mencapainya. Saya tidak keberatan jika saya harus melepas tongkat setiap kali sebelum melepaskannya selama kecepatan transfer lebih baik.
Ada ide?
2 Nov: Laporan bug ini sepertinya terkait: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/182931 . Yang mengkhawatirkan saya adalah bahwa masalahnya tampaknya sudah lebih dari 2 tahun dan masih belum terpecahkan.
10 Nov: Saya memulai read-test dengan palimpstest (dari proyek gnome-disk-utility). Ini memberi saya kecepatan transfer minimal 23 MBit / s. Juga mencobanya di krusader sekarang, kecepatan baca terus-menerus> 20 MBit / s. Jadi masalahnya sebenarnya hanya menulis ke tongkat!
Berikut adalah gambar tes baca-tulis dalam program yang sama:
Saya harus menghapus sistem file sepenuhnya sebelum tes yang menunjukkan bahwa vfat bukan penyebab utama seperti yang disebutkan di atas.
Petunjuk lain: Jika saya mentransfer file 100 MB, setelah 100% dibutuhkan waktu yang tidak biasa untuk benar-benar menyelesaikan transfer. Ini sekali lagi terlihat oleh saya bahwa file tersebut memang dalam cache tetapi menulis ke perangkat usb sangat lambat.
12 November: "Berita baik". Masalahnya sepertinya memory stick itu sendiri. Mencoba hard drive eksternal (My Book Elite 1TB) memberi saya kecepatan menulis konstan sekitar 20 MiB / s. Saya pertama kali mencoba memformat ulang memory stick saya sehingga saya benar-benar dapat membandingkan keduanya (sistem file berbeda). Setelah memformat ulang, kedua drive dipasang dengan cara yang persis sama:
/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 adalah tongkatnya (kecepatan masih turun setelah beberapa detik), My Book adalah hard drive eksternal dengan kecepatan tulis konstan 20 MiB / s.
Sulit mengatakan apa masalahnya sebenarnya. Seperti yang saya katakan, pada Windows saya mendapatkan kecepatan menulis yang sama cepatnya dengan SanCruzer juga.
Sunting di akhir hadiah: Sayangnya, masalah dengan tongkat masih belum terpecahkan. Namun, setelah 7 hari saya ingin menghadiahkan hadiah tentu saja. Komentar dari aking1012 benar-benar membantu karena memberikan pandangan baru tentang masalah ini. Namun, saya merasa bahwa saya harus memberikan hadiah kepada harrymc karena dia menunjukkan upaya paling banyak untuk menyelesaikan masalah. Terima kasih semuanya.
flush
opsi pada output mount Anda tidak akan membantu. Saya pikir itu lebih buruk daripadasync
.Jawaban:
Artikel Lambat kecepatan transfer massa stoarage USB 2.0 menunjukkan bahwa ini mungkin menjadi masalah perangkat yang dipasang secara default dengan opsi sinkronisasi:
Beberapa ide lain datang dari laporan bug. Menulis melalui hdd eksternal membuat penulisan menjadi sangat lambat
Lihat juga diskusi dalam artikel tentang pmount, jika ini berlaku untuk sistem Anda.
Solusi ajaib lain datang dari USB 2.0 yang lambat tulis tetapi cepat dibaca, solusinya belum? dan melibatkan pemasangan kembali:
Lihat artikel ini dan referensi untuk "usbtree". Ini memberitahu cara memeriksa apakah usb berfungsi sebagai 1.1 atau 2.0:
Linux dan USB 2.0 .
sumber
Akses ke drive biasanya buffered dalam mode async. Ledakan cepat awal cenderung ke cache memori. Kecepatan lambat adalah kecepatan tulis yang sebenarnya.
Jika Anda memiliki stik USB yang berkedip saat transfer, cobalah beberapa tes. Saya menemukan bahwa menulis dapat berlanjut cukup lama setelah salinan selesai.
Memasang dalam mode async alih-alih mode sinkronisasi memungkinkan salinan muncul untuk melanjutkan lebih cepat, tetapi tidak memberi Anda keamanan yang sama bahwa data yang disalin benar-benar ditransfer.
Periksa opsi di
man mount
. Beberapa format memungkinkan pembaruan metadata (direktori, tabel alokasi file, dll) ditangguhkan. Ini akan mengurangi jumlah data yang perlu disalin. Ini sedikit meningkatkan risiko kehilangan data.sumber
Jadi saya datang ke halaman ini melalui pencarian google dari masalah yang sama ("ubuntu 15 percepat transfer usb") karena transfer saya berjalan pada 75kb / s.
Ini mungkin hanya solusi untuk pengaturan saya tetapi 16GB USB 3 drive saya diformat ke GPT fat32, saya menghapus semua partisi, diinisialisasi ke MBR, membuat satu partisi NTFS, memasangnya kembali ke PC Ubuntu saya dan sekarang mentransfer file 10GB lebih dari 50MB / s. Bagi saya, masalah terpecahkan.
sumber
Kita perlu memastikan bahwa sistem mencoba menulis dalam potongan blok program / hapus. Dengan memori flash modern, ukurannya biasanya 1M-4M. Untuk melakukan ini, Anda ingin memastikan FS Anda selaras untuk menghapus blok, dan antarmuka itu memungkinkan transfer seluruh blok sekaligus (untuk tongkat murah). Kalau tidak, kita akan mendapatkan amplifikasi tulis, karena sistem mencoba menulis dalam potongan yang lebih kecil, daripada menghapus blok (melakukan baca / mod / tulis) + blok misalignment.
Untuk memeriksa pengaturan Anda saat ini, lakukan:
cat /sys/block/sd**X**/device/max_sectors
Anda dapat menyesuaikan aturan aula untuk perangkat tersebut. Lihat /unix/67719/change-value-of-usb-max-sectors-for-an-entire-family-of-devices .
Dalam hal ini saya telah mengganti max_sectors untuk semua perangkat, yang menggunakan standar 240 (penyimpanan USB) ke sektor 32K atau sektor 2K:
(gunakan == untuk memeriksa, dan = untuk menetapkan):
Pada sistem saya (Mageia 4, 3.14.24 core i7) saya harus melakukan ini karena kecepatan tulis yang sangat lambat (2MB / detik) di Kingston DT101 G2 16GB:
vi /usr/lib/udev/rules.d/81-udisks_maxsect.rules
dan tambahkan:SUBSYSTEMS == "scsi", ATTR {max_sectors} == "240", ATTR {max_sectors} = "32678"
Dan kecepatan penulisan dd naik 3x kali :-) mc cp mungkin 10-20x ke atas (setelah saya memulai partisi pertama @ sektor 8192 'dan diformat ulang dengan 64k klaster yang disejajarkan):
fdisk -u /dev/sdh
(matikan compat DOS jika hidup),mkfs.vfat /dev/sdh1 -n KINGSTON16G -s 128 **-R 4592**
dan gunakanfsck.vfat -v /dev/sdh1
untuk memeriksa perataan (centang [sektor mulai data] harus kelipatan 128 (ukuran kluster)). Sesuaikan jumlah sektor yang dicadangkan (-R) jika perlu.Max_sectors default (240) tampaknya menyebabkan amplifikasi tulis tinggi pada beberapa drive baru yang murah. Tapi hati-hati dengan pengaturan tinggi seperti itu, efek yang sama dicapai pada 2048 sektor (mungkin 1M menghapus blok:
SUBSYSTEMS == "scsi", ATTR {max_sectors} == "240", ATTR {max_sectors} = "2048"
Uji semua perangkat USB lama Anda, apakah masih berfungsi dengan baik. Gunakan atribut vendor / model dalam file aturan untuk lebih spesifik.
PS: Jika menggunakan ext3 / 4:
Nonaktifkan Journaling dan set stride / stripe_width untuk mkfs.ext3:
mkfs.ext3 -O ^ has_journal -E stride = [baca blok halaman fs] -E stripe-width = [hapus blok blok fs]
sumber
Saya punya beberapa masalah juga dengan kecepatan transfer pada disk eksternal WD, setelah membukanya di windows SO, saya selalu menggunakan LINUX, setelah itu kecepatan transfernya seperti 1,5mb / s daripada saya melepas hard drive eksternal, jalankan dmesg di sana mengatakan bahwa sdb1 itu unmounted unmounted, menjalankan fsck, yang membuat beberapa perbaikan dan setelah itu 20mb / s tingkat transfer lagi ketika copiyng dari sda ke disk eksternal.
"fsck selalu berisiko jika Anda memiliki data, tetapi itu berhasil bagi saya, tanpa kehilangan data"
sumber
Periksa, benar-benar periksa , bahwa perangkat Anda terhubung ke port USB yang mendukung kecepatan penuh.
Meskipun ini terdengar konyol, kadang-kadang hal-hal menjadi kacau. Beberapa motherboard memiliki port kecepatan tinggi dan rendah. Gunakan alat seperti usbview (catatan untuk menjalankannya dengan hak pengguna super ,
sudo usbview
) untuk memverifikasi bahwa perangkat Anda beroperasi pada 480Mb / s (USB 2.0) atau lebih.Misalnya, ketika Anda biasanya mencolokkan perangkat Anda melalui beberapa kabel ekstensi, hub di layar Anda, dll., Itu mungkin terjadi - setelah memasang kembali kabel pada komputer deskside Anda atau lebih - bahwa Anda secara tidak sengaja menyambungkan hub ke kecepatan rendah (USB 1.) port. Kemudian, semua perangkat yang terhubung ke hub akan beroperasi dengan kecepatan rendah, sementara yang lain, terpasang di tempat lain, beroperasi dengan kecepatan tinggi. Dapat sangat membingungkan - dan merupakan hal perangkat keras yang sederhana ... Terjadi pada saya sekali, dan tidak terkait dengan modul kernel USB, opsi pemasangan atau lebih.
sumber