Cuando conecto mi unidad USB 2.0 a Xubuntu e intento transferir archivos grandes, las velocidades de transferencia son buenas al principio, pero caen después de unos segundos a 1-2 Mib / s. Por lo que leí, la transferencia rápida al principio es solo hasta que el caché esté lleno, luego se usa la velocidad de transferencia USB real.
En Windows, la velocidad es constante a aproximadamente 25Mib / s, el mismo dispositivo, conectado al mismo puerto.
Esta es la salida de dmesg al conectar el dispositivo:
[ 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
El stick está montado automáticamente, aquí está la salida 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)
Tengo que usar vfat porque quiero transferir archivos a mi sistema Playstation3. Aunque la prueba a continuación muestra que esta no es la causa principal.
Parece que este es un problema común en (X) ubuntu. Todavía no he encontrado una solución clara. Parece que el dispositivo debe montarse como asíncrono en lugar de al ras, pero no estoy exactamente seguro de cómo lograrlo. No me importa si tengo que desmontar el stick cada vez antes de desconectarlo siempre que las velocidades de transferencia sean mejores.
¿Algunas ideas?
2 de noviembre: este informe de error parece estar relacionado: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/182931 . Lo que me preocupa es que el problema parece tener más de 2 años y aún no está resuelto.
10 de noviembre: comencé una prueba de lectura con palimpstest (del proyecto gnome-disk-utility). Esto me da una tasa de transferencia mínima de 23 MBit / s. También lo probé en krusader ahora, la velocidad de lectura es constantemente> 20 MBit / s. ¡Entonces el problema realmente es solo escribir en el palo!
Aquí hay una imagen de una prueba de lectura y escritura en el mismo programa:
Tuve que eliminar el sistema de archivos por completo antes de la prueba que muestra que vfat no es la causa principal como se mencionó anteriormente.
Otra pista: si transfiero un archivo de 100 MB, una vez que esté al 100%, se tarda mucho tiempo en terminar la transferencia. Esto nuevamente me parece que el archivo está en una memoria caché, pero escribir en el dispositivo usb es muy lento.
12 de noviembre: "Buenas noticias". Los problemas parecen ser la memoria en sí. Probar un disco duro externo (My Book Elite 1TB) me da una velocidad de escritura constante de aproximadamente 20 MiB / s. Primero traté de formatear mi tarjeta de memoria para poder realmente comparar los dos (los sistemas de archivos eran diferentes). Después de formatear, ambas unidades se montan exactamente de la misma manera:
/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 es el stick (la velocidad sigue bajando después de unos segundos), My Book es el disco duro externo con una velocidad de escritura constante de 20 MiB / s.
Es difícil decir cuál es realmente el problema entonces. Como dije, en Windows también obtengo velocidades de escritura igualmente rápidas con el SanCruzer.
Editar al final de la recompensa: desafortunadamente, el problema con el palo todavía no está resuelto. Sin embargo, después de 7 días, quiero otorgar la recompensa, por supuesto. El comentario de aking1012 fue realmente útil, ya que arrojó una nueva luz sobre el asunto. Sin embargo, siento que tengo que darle la recompensa a harrymc, ya que demostró el mayor esfuerzo para resolver el problema. Gracias a todos.
flush
opción en su salida de montaje es poco probable que ayude. Creo que eso es aún peor quesync
.Respuestas:
El artículo La velocidad de transferencia de almacenamiento masivo lento USB 2.0 sugiere que esto podría ser un problema de que el dispositivo se monte de forma predeterminada con la opción de sincronización:
Algunas ideas más provienen del informe de errores Escritura en un disco duro externo que hace que la escritura sea muy lenta
Consulte también la discusión en el artículo sobre pmount, si esto se aplica a su sistema.
Otra solución mágica proviene de USB 2.0 de escritura lenta pero lectura rápida, ¿solución todavía? e implica volver a montar:
Consulte este artículo y la referencia a "usbtree". Indica cómo verificar si el usb funciona como 1.1 o 2.0:
Linux y USB 2.0 .
fuente
El acceso a la unidad generalmente se almacena en modo asíncrono. Es probable que la ráfaga rápida inicial llegue a la memoria caché. La velocidad lenta es la velocidad de escritura real.
Si tiene una memoria USB que parpadea durante la transferencia, pruebe algunas pruebas. Descubrí que las escrituras pueden continuar durante bastante tiempo después de que se complete la copia.
El montaje en modo asíncrono en lugar del modo de sincronización permite que la copia parezca avanzar más rápido, pero no le brinda la misma seguridad de que los datos copiados realmente se transfieren.
Verifique las opciones en
man mount
. Algunos formatos permiten diferir las actualizaciones de metadatos (directorio, tabla de asignación de archivos, etc.). Esto reducirá la cantidad de datos que deben copiarse. Esto aumenta ligeramente el riesgo de pérdida de datos.fuente
Así que llegué a esta página a través de una búsqueda en Google del mismo problema ("ubuntu 15 acelerar la transferencia usb") porque mis transferencias se estaban ejecutando a 75kb / s.
Esta fue probablemente solo la solución para mi configuración, pero mi unidad USB 3 de 16 GB fue formateada a GPT fat32, eliminé todas las particiones, las inicialicé en MBR, hice una única partición NTFS, la volví a conectar a mi PC Ubuntu y ahora está transfiriendo un archivo de 10 GB a más de 50 MB / s. Para mí, problema resuelto.
fuente
Necesitamos asegurarnos de que el sistema intente escribir en el programa / borrar bloques de bloques. Con memoria flash moderna, generalmente tienen un tamaño de 1M-4M. Para hacer esto, debe asegurarse de que su FS esté alineado para borrar bloques, y esa interfaz permite la transferencia completa de bloques de una sola vez (para palos baratos). De lo contrario, obtendríamos amplificación de escritura, ya que el sistema intenta escribir en fragmentos que son más pequeños, que borrar bloque (haciendo lectura / mod / escritura) + desalineación de bloque.
Para verificar su configuración actual, haga lo siguiente:
cat /sys/block/sd**X**/device/max_sectors
Puede ajustar las reglas del pasillo para esos dispositivos. Ver /unix/67719/change-value-of-usb-max-sectors-for-an-entire-family-of-devices .
En este caso, reemplacé max_sectors para todos los dispositivos, que usaban el valor predeterminado de 240 (almacenamiento USB) a 32K sectores o 2K sectores:
(use == para verificar y = para asignar):
En mi sistema (Mageia 4, 3.14.24 core i7) tuve que hacer esto debido a velocidades de escritura terriblemente lentas (2MB / seg) en Kingston DT101 G2 16GB:
vi /usr/lib/udev/rules.d/81-udisks_maxsect.rules
y añadir:SUBSISTEMA == "scsi", ATTR {max_sectors} == "240", ATTR {max_sectors} = "32678"
Y la velocidad de escritura de dd aumentó 3 veces :-) mc cp probablemente 10-20x (después de que comencé la primera partición en el sector 8192 y reformateé con clústeres alineados de 64k):
fdisk -u /dev/sdh
(haga que DOS sea compatible si está activado),mkfs.vfat /dev/sdh1 -n KINGSTON16G -s 128 **-R 4592**
y se usafsck.vfat -v /dev/sdh1
para verificar la alineación (la verificación [sector de inicio de datos] debe ser múltiplo de 128 (tamaño del clúster)). Ajuste el número de sectores reservados (-R) si es necesario.Los max_sectors predeterminados (240) parecen causar una gran amplificación de escritura en algunas de las nuevas unidades baratas. Pero tenga mucho cuidado con una configuración tan alta, el efecto similar se logra en 2048 sectores (probablemente bloques de borrado de 1M:
SUBSISTEMA == "scsi", ATTR {max_sectors} == "240", ATTR {max_sectors} = "2048"
Pruebe todos sus dispositivos USB antiguos, que todavía funcionan bien. Utilice los atributos de proveedor / modelo en los archivos de reglas para ser más específico.
PD: si usa ext3 / 4:
Deshabilite el registro en diario y establezca stride / stripe_width para mkfs.ext3:
mkfs.ext3 -O ^ has_journal -E stride = [leer página fs blocks] -E stripe-width = [borrar bloques fs block]
fuente
Tuve algunos problemas también con la velocidad de transferencia en un disco externo WD, después de abrirlo en Windows SO, siempre usé LINUX, después de eso la velocidad de transferencia fue de 1.5mb / s que desmonte el disco duro externo, ejecuté dmesg allí estaba diciendo que sdb1 estaba desmontado de forma inadecuada, ejecutó un fsck, que realizó algunas reparaciones y después de eso 20mb / s de velocidad de transferencia nuevamente cuando se copian de sda a disco externo.
"fsck siempre es un riesgo si tienes datos, pero funcionó para mí, sin pérdida de datos"
fuente
Verifique, realmente verifique , que su dispositivo esté conectado a un puerto USB que admita velocidad máxima.
Aunque esto puede sonar tonto, a veces las cosas se mezclan. Algunas placas base tienen puertos de alta y baja velocidad. Use una herramienta como usbview (nota para ejecutarlo con derechos de superusuario
sudo usbview
) para verificar que su dispositivo esté funcionando a 480Mb / s (USB 2.0) o más.Por ejemplo, cuando normalmente conecta su dispositivo a través de un cable de extensión, un concentrador en su pantalla, etc., puede ocurrir, después de volver a enchufar los cables en su computadora de escritorio o algo así, que accidentalmente enchufó el concentrador a baja velocidad (USB 1.) puerto. Entonces, cualquier dispositivo conectado al concentrador funcionará a baja velocidad, mientras que otros, enchufados en otro lugar, funcionarán a alta velocidad. Puede ser muy confuso, y es una cosa de hardware simple ... Me sucedió una vez, y no está relacionado con ningún módulo del kernel USB, opciones de montaje, etc.
fuente