Lorsque je connecte mon lecteur USB 2.0 à Xubuntu et que j'essaie de transférer des fichiers volumineux, les vitesses de transfert sont bonnes au début, mais tombent après quelques secondes à 1-2 Mib / s. D'après ce que j'ai lu, le transfert rapide au début est juste jusqu'à ce que le cache soit plein, puis la vraie vitesse de transfert USB est utilisée.
Sous Windows, la vitesse est constante à environ 25Mib / s, même stick, connecté au même port.
C'est la sortie de dmesg lors de la connexion du stick:
[ 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
Le stick est monté automatiquement, voici la sortie de "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)
Je dois utiliser vfat car je souhaite transférer des fichiers sur mon système Playstation3. Cependant, le test ci-dessous montre que ce n'est pas la cause principale.
Il semble que ce soit un problème courant dans (X) ubuntu. Je n'ai pas encore trouvé de solution claire. Il semble que le stick doive être monté en async au lieu de flush mais je ne sais pas exactement comment y parvenir. Cela ne me dérange pas si je dois démonter le stick à chaque fois avant de le déconnecter tant que les vitesses de transfert sont meilleures.
Des idées?
2 novembre: Ce rapport de bogue semble être lié: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/182931 . Ce qui m'inquiète, c'est que le problème semble avoir plus de 2 ans et n'est toujours pas résolu.
10 novembre: J'ai commencé un test de lecture avec palimpstest (du projet gnome-disk-utility). Cela me donne un taux de transfert minimal de 23 Mbits / s. Également essayé en krusader maintenant, la vitesse de lecture est constamment> 20 MBit / s. Donc, le problème est vraiment d'écrire sur le bâton!
Voici une image d'un test de lecture-écriture dans le même programme:
J'ai dû supprimer complètement le système de fichiers avant le test, ce qui montre que vfat n'est pas la cause principale comme mentionné ci-dessus.
Un autre indice: si je transfère un fichier de 100 Mo, une fois qu'il est à 100%, il faut un temps inhabituel pour terminer le transfert. Cela me semble à nouveau que le fichier est en effet dans un cache, mais l'écriture sur le périphérique USB est très lente.
12 nov: "Bonne nouvelle". Le problème semble être la clé USB elle-même. Essayer un disque dur externe (My Book Elite 1 To) me donne une vitesse d'écriture constante d'environ 20 Mio / s. J'ai d'abord essayé de reformater ma clé USB afin que je puisse vraiment comparer les deux (les systèmes de fichiers étaient différents). Après le reformatage, les deux disques sont montés exactement de la même manière:
/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 est le stick (la vitesse baisse encore après quelques secondes), My Book est le disque dur externe avec une vitesse d'écriture constante de 20 Mio / s.
Difficile de dire quel est vraiment le problème alors. Comme je l'ai dit, sous Windows, j'obtiens également des vitesses d'écriture aussi rapides avec le SanCruzer.
Edition en fin de prime: Malheureusement, le problème avec le stick n'est toujours pas résolu. Cependant, après 7 jours, je veux bien sûr attribuer la prime. Le commentaire de aking1012 a été très utile car il a jeté un nouvel éclairage sur la question. Cependant, je pense que je dois donner la prime à harrymc car il a montré le plus d'efforts pour résoudre le problème. Merci a tous.
flush
est peu probable que l' option de votre sortie de montage vous aide. Je pense que c'est encore pire quesync
.Réponses:
L'article Slow USB 2.0 mass stoarage transfer rate suggère que cela pourrait être un problème de périphérique monté par défaut avec l'option de synchronisation:
D'autres idées proviennent du rapport de bogue. Écriture sur le disque dur externe, ce qui rend l'écriture très lente.
Voir également la discussion dans l'article concernant pmount, si cela s'applique à votre système.
Une autre solution magique vient de l' écriture lente USB 2.0 mais de la lecture rapide, encore une solution? et implique de remonter:
Voir cet article et la référence à "usbtree". Il indique comment vérifier si l'USB fonctionne en 1.1 ou 2.0:
Linux et USB 2.0 .
la source
L'accès au lecteur est généralement mis en mémoire tampon en mode asynchrone. La rafale rapide initiale est susceptible de mettre en cache la mémoire. La vitesse lente est la vitesse d'écriture réelle.
Si vous avez une clé USB qui clignote pendant le transfert, essayez quelques tests. J'ai trouvé que les écritures peuvent continuer pendant un certain temps après la fin de la copie.
Le montage en mode asynchrone au lieu du mode sync permet à la copie d'apparaître plus rapidement, mais ne vous donne pas la même sécurité que les données copiées sont réellement transférées.
Vérifiez les options dans
man mount
. Certains formats permettent de différer les mises à jour des métadonnées (répertoire, table d'allocation des fichiers, etc.). Cela réduira la quantité de données à copier. Cela augmente légèrement le risque de perte de données.la source
Je suis donc arrivé sur cette page via une recherche google du même problème ("ubuntu 15 speed up usb transfer") car mes transferts fonctionnaient à 75kb / s.
Ce n'était probablement que la solution pour ma configuration mais mon lecteur USB 3 de 16 Go a été formaté en GPT fat32, j'ai supprimé toutes les partitions, initialisé en MBR, créé une seule partition NTFS, l'ai rebranché sur mon PC Ubuntu et il transfère maintenant un fichier de 10 Go à plus de 50 Mo / s. Pour moi, le problème est résolu.
la source
Nous devons nous assurer que le système essaie d'écrire dans des blocs de programme / effacement. Avec une mémoire flash moderne, leur taille est généralement de 1 à 4 millions. Pour ce faire, vous voulez vous assurer que le vôtre FS est aligné pour effacer les blocs, et cette interface permet le transfert de bloc entier en une seule fois (pour les bâtons bon marché). Sinon, nous obtiendrions une amplification d'écriture, car le système essaie d'écrire en morceaux plus petits, que d'effacer un bloc (faire lecture / mod / écriture) + un désalignement de bloc.
Pour vérifier votre réglage actuel, procédez comme suit:
cat /sys/block/sd**X**/device/max_sectors
Vous pouvez régler les règles de la salle pour ces appareils. Voir /unix/67719/change-value-of-usb-max-sectors-for-an-entire-family-of-devices .
Dans ce cas, j'avais remplacé max_sectors pour tous les appareils, qui utilisaient par défaut 240 (stockage USB) sur 32K secteurs ou 2K secteurs:
(utilisez == pour vérifier et = pour attribuer):
Sur mon système (Mageia 4, 3.14.24 core i7), je devais le faire en raison de vitesses d'écriture terriblement lentes (2 Mo / s) sur Kingston DT101 G2 16 Go:
vi /usr/lib/udev/rules.d/81-udisks_maxsect.rules
et ajouter:SOUS-SYSTÈMES == "scsi", ATTR {max_sectors} == "240", ATTR {max_sectors} = "32678"
Et la vitesse d'écriture dd a augmenté 3 fois :-) mc cp probablement 10 à 20 fois (après avoir commencé la première partition @ 8192'ème secteur et reformaté avec des clusters alignés à 64k):
fdisk -u /dev/sdh
(désactivez la compatibilité DOS si elle est activée),mkfs.vfat /dev/sdh1 -n KINGSTON16G -s 128 **-R 4592**
et utilisezfsck.vfat -v /dev/sdh1
pour vérifier l'alignement (vérifiez que [secteur de démarrage des données] doit être multiple de 128 (taille du cluster)). Ajustez le nombre de secteurs réservés (-R) si nécessaire.Les max_sectors par défaut (240) semblent provoquer une forte amplification d'écriture sur certains des nouveaux lecteurs bon marché. Mais soyez très prudent avec un réglage aussi élevé, l'effet similaire est obtenu sur 2048 secteurs (probablement 1M de blocs d'effacement:
SOUS-SYSTÈMES == "scsi", ATTR {max_sectors} == "240", ATTR {max_sectors} = "2048"
Testez tous vos anciens périphériques USB, ils fonctionnent toujours bien. Utilisez des attributs de fournisseur / modèle dans les fichiers de règles pour être plus précis.
PS: si vous utilisez ext3 / 4:
Désactivez la journalisation et définissez stride / stripe_width pour mkfs.ext3:
mkfs.ext3 -O ^ has_journal -E stride = [lire la page blocs fs] -E largeur de bande = [effacer le bloc fs blocs]
la source
J'ai également eu quelques problèmes avec le taux de transfert sur un disque externe WD, après l'avoir ouvert dans une fenêtre SO, j'ai toujours utilisé LINUX, après que le taux de transfert était de 1,5 Mo / s par rapport au démontage du disque dur externe, j'ai exécuté dmesg là-bas disait que sdb1 il était mal monté, a couru un fsck, qui a fait quelques réparations et après que 20mb / s de taux de transfert encore quand copiyng de sda au disque externe.
"fsck est toujours un risque si vous avez des données, mais cela a fonctionné pour moi, sans perte de données"
la source
Vérifiez, vérifiez vraiment , que votre appareil est branché sur un port USB qui prend en charge la pleine vitesse.
Bien que cela puisse paraître idiot, parfois les choses se mélangent. Certaines cartes mères ont des ports haut et bas débit. Utilisez un outil comme usbview (remarque pour l'exécuter avec les droits de superutilisateur
sudo usbview
) pour vérifier que votre appareil fonctionne à 480 Mo / s (USB 2.0) ou plus.Par exemple, lorsque vous branchez généralement votre appareil via une rallonge, un concentrateur sur votre écran, etc., il peut arriver - après avoir re-branché les câbles sur votre ordinateur de bureau ou quelque chose du genre - que vous avez accidentellement branché le concentrateur à une faible vitesse Port (USB 1.). Ensuite, tous les appareils branchés sur le concentrateur fonctionneront à faible vitesse, tandis que d'autres, branchés ailleurs, fonctionneront à haute vitesse. Cela peut être très déroutant - et c'est une chose matérielle simple ... Cela m'est arrivé une fois, et n'est lié à aucun module de noyau USB, à des options de montage, etc.
la source