Perché il trasferimento di file USB è così lento in 12.10?


12

Stavo ottenendo i soliti 4-8 Mbps in 12.04 durante la copia di file tramite chiavette USB. Tuttavia, dopo l'aggiornamento a 12.10, ottengo solo 200-300 kbps quando provo a eseguire la stessa operazione.

Ho provato diverse chiavette USB (che funzionano perfettamente su Windows 7) e riscontro ancora lo stesso problema. Ho riscontrato lo stesso problema qualche tempo fa l'11.10, ma tutto era normale quando ho eseguito l'aggiornamento a 12.04, quindi potrebbe essere un problema del kernel.

Ecco l'output di dmseg |tail:

    mysterio@mysterio-HP-Pavilion-dv6700-Notebook-PC:~$ dmesg |tail 

[  871.023093] sdb: sdb1 
[  871.026909] sd 5:0:0:0: [sdb] No Caching mode page present 
[  871.026920] sd 5:0:0:0: [sdb] Assuming drive cache: write through 
[  871.026927] sd 5:0:0:0: [sdb] Attached SCSI removable disk 
[ 1036.226206] ISO 9660 Extensions: Microsoft Joliet Level 3 
[ 1036.233561] ISO 9660 Extensions: RRIP_1991A 
[ 1086.342973] ISO 9660 Extensions: Microsoft Joliet Level 3 
[ 1086.343010] ISO 9660 Extensions: RRIP_1991A 
[ 1173.971357] ISO 9660 Extensions: Microsoft Joliet Level 3 
[ 1173.971441] ISO 9660 Extensions: RRIP_1991A

Ho aggiornato il mio sistema con gli ultimi aggiornamenti. Cosa potrebbe esserci di sbagliato?


1
Ci possono essere molte ragioni. Eseguire "dmesg | tail" in un terminale dopo aver collegato l'unità USB e pubblicare l'output. Ciò dovrebbe fornire suggerimenti in caso di problemi con il conducente. Inoltre, comunicaci quale file system si trova sulla tua pen drive (potrebbe essere, ad esempio, che la memoria riservata al journal di un file system journaling stia lentamente morendo e quindi le prestazioni diminuiscano).
soulsource

Come viene formattata la chiavetta USB?
Mitch

Risposte:


22

Temo che il tuo problema non abbia soluzione. Le velocità di trasferimento lento USB sono un fantasma nella storia di Ubuntu, che va e viene di tanto in tanto. Succede perché gli sviluppatori nella maggior parte dei casi non sono in grado di riprodurre questo problema e quindi nessuna soluzione verrà rilasciata.

Puoi vedere un fenomeno di discussioni sulla velocità di trasferimento USB su Ubuntu (e sui suoi "cugini"). Ad esempio puoi vedere questa discussione , questa discussione e questa altra discussione .

Alcuni sostengono che l'abilitazione o la disabilitazione del supporto USB legacy nel BIOS risolva il problema, anche se sembra casi rari specifici.

È stato segnalato un bug su LaunchPad che presenta una soluzione alternativa al problema, ma poiché è in qualche modo obsoleto non posso valutarne l'efficacia al giorno d'oggi. La soluzione alternativa è presentata da Jean Pierre al Bug # 66115 , parla della soluzione alternativa in questo commento e dopo in questo commento più dettagliato .

Una discussione accesa riguarda la modalità di sincronizzazione abilitata quando Nautilus monta un dispositivo, sebbene oltre Konqueror (equivalente a KDE di Nautilus) non ho trovato nessuno che ha disabilitato l'opzione di sincronizzazione per Nautilus.

Alcune soluzioni alternative di dubbia efficacia sono discusse nella domanda di questo Super User .

Se non hai avuto fortuna fino a qui, ti dirò che al momento non esiste una soluzione al problema.

Attualmente esiste un bug segnalato in LaunchPad e puoi contrassegnarlo come un problema che ti riguarda. Se l'hardware è diverso da quello segnalato dal bug, è possibile aggiungere un commento che riporti l'hardware interessato.


1
Temevo altrettanto. Comunque, dal 13.04 mancano solo un paio di giorni, la nuova versione del kernel dovrebbe risolverlo, si spera
Mysterio,

3
Solo per ricordare che esiste già una segnalazione di bug bugs.launchpad.net/ubuntu/+source/linux/+bug/500069
desgua

@desgua Grazie per il link, anche se sottolineo ancora la necessità di un bug report perché il problema in Bug # 500069 è diverso dal problema Mysterio, il suo problema è la velocità di trasferimento lenta non il blocco del sistema durante il trasferimento dei dati, e nel caso di USB problemi nella maggior parte dei casi le correzioni che si applicano a un hardware potrebbero non funzionare in un altro, quindi è meglio creare una nuova segnalazione di bug.
Rodrigo Martins,

2
@RodrigoMartins I "blocchi" nel titolo dovrebbero essere divertenti e attirare l'attenzione. Il titolo del buco è: "Il trasferimento di file USB causa il blocco del sistema; le operazioni richiedono ore anziché minuti"
desgua

1
@desgua Mi dispiace, la mia lingua madre non è l'inglese e talvolta non capisco le battute ahah
Rodrigo Martins

7

Nonostante il pessimismo della risposta molto completa di Rodrigo, sospetto che la maggior parte di questi casi sia semplicemente dovuta al comportamento predefinito di usbmount o di gestori hotplug equivalenti per forzare la scrittura su disco anziché la cache. È necessario verificare se syncè abilitato per il dispositivo, ad esempio, cercando la riga corrispondente da cat /proc/mounts. Potrebbe assomigliare a:

/dev/sdb1 /media/usb0 fuseblk,sync,rw,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0

Nota la syncbandiera. È necessario impedire che venga impostato. Se montate manualmente dovreste cambiare la voce fstab come in questa risposta . Se è montato automaticamente, dai un'occhiata all'output tail /var/log/syslogsubito dopo il collegamento e cerca una linea come:

Jul 21 19:28:51 my-machine usbmount[3823]: executing command: mount -tntfs -sync,onoexec,nodev,noatime,nodiratime /dev/sdb1 /media/usb0

Se è montato da usbmount puoi seguire il mio consiglio in un'altra risposta e cambiare la MOUNTOPTIONSlinea /etc/usbmount/usbmount.confda:

MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime"

per

MOUNTOPTIONS="noexec,nodev,noatime,nodiratime"

1
La modifica delle mie mountoptions per rimuovere la sincronizzazione ha appena spostato la mia copia del file da una previsione di 4+ ore a ~ 4+ minuti. Sono contento di averlo provato !! Questo è per il trasferimento di un file da 3,3 GB su una chiavetta USB da 4 GB tramite USB 1.1 [potrebbe essere USB2 ma sono abbastanza sicuro che sia 1.1].
pbhj,

1

Bene, ci sono vari motivi per cui il trasferimento USB è lento:

  1. Dimensione dei file da copiare. (più samller è il file, più lento diventa)
  2. La velocità della chiavetta USB.
  3. Modalità di formattazione della chiavetta USB (NTFS, Fat32 o EXT4)

Quindi, se lo stick è formattato come NTFS, continua a leggere.

NTFS su Linux funziona in modo leggermente diverso rispetto alla maggior parte dei driver di filesystem, quindi i dati da scrivere in un filesystem NTFS passano effettivamente attraverso la CPU. Per la maggior parte dei filesystem, la CPU non gestisce direttamente i dati da scrivere.

Ecco perché scrivere su uno stick formattato NTFS in Linux è lento, piuttosto che scrivere su NTFS su Windows. Quindi potresti formattare la tua chiavetta USB come Ext4 (solo Linux) o fat32 funziona in entrambi i modi, ma ha un limite di dimensioni di file di 4 GiB.


Ho lentezze / blocchi simili (anche il mouse smette di funzionare), ora ho provato Ext4 e ho ancora quel problema (Ubuntu 14).
bartosz.r,

1

Ho modificato il file /etc/usbmount/usbmount.conf sul server Ubuntu 15.10, ho rimosso la parola "sync" da questa riga:

MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime"

come menzionato prima da Rodrigo Martins (grande grazie!).

Ha aumentato la velocità di scrittura per un HDD collegato a 480 mbps da 2 Mbyte / sec a 20 Mbyte / sec costanti, la form è costante e reale, non "cache", non virtuale. Questa unità scrive circa 30 Mbyte / sec su un computer Windows.


0

Non so se questo possa aiutare qualcun altro, ma è quello che ha funzionato per me quando ho avuto problemi con velocità di trasferimento molto lente usando Ubuntu 13.04 (velocità di 1 mb / s o meno). Ad ogni modo ho riavviato il mio computer con il mio hdd USB collegato alla porta USB proprio prima dell'avvio di Ubuntu che ha eseguito alcuni script sullo schermo nero appena prima del caricamento e dopo che la mia velocità di trasferimento è stata davvero buona sui 24 mb / s di fascia bassa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.