# USB muuuuuy lento

## nandelbosc

Hace dias que me peleo con el USB, primero en el trabajo (http://stolz.gsmlandia.com/node/98) y ahora en casa!

Estoy copiando desde un disco IDE a una partición ext3 de un disco usb 2.0 

En la imagen podeis ver que estoy copiando 3 directorios bastante grandes a una velocidad total inferior a 2MB/s... http://213.97.38.219/usb.jpg

como monto el dispositivo:

```
/dev/sda1                /mnt/sda1       auto    sync,noauto,defaults,users,user         0 1

/dev/sda2                /mnt/sda2       auto    sync,noauto,defaults,users,user         0 1

```

Que dispositivos usb tengo:

```
# lspci  | grep -i usb

00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev a0)

00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev a0)

00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev a0)

00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev a0)

00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)

```

Cual estoy utilizando:

```

# lswh

        *-usb:4

             description: USB Controller

             product: USB 2.0

             vendor: VIA Technologies, Inc.

             physical id: 10.4

             bus info: pci@00:10.4

             version: 86

             width: 32 bits

             clock: 33MHz

             capabilities: ehci bus_master cap_list

             configuration: driver=ehci_hcd latency=64

             resources: iomemory:daeffc00-daeffcff irq:19

           *-usbhost

                product: EHCI Host Controller

                vendor: Linux 2.6.18-gentoo-r4 ehci_hcd

                physical id: 1

                bus info: usb@1

                logical name: usb1

                version: 2.06

                capabilities: usb-2.00

                configuration: driver=hub maxpower=0mA slots=8 speed=480.0MB/s

              *-usb

                   description: Mass storage device

                   product: LaCie HardDrive USB

                   vendor: LaCie

                   physical id: 6

                   bus info: usb@1:6

                   version: 0.00

                   serial: 10000E000CC82CB0

                   capabilities: usb-2.00 scsi

                   configuration: driver=usb-storage maxpower=2mA speed=480.0MB/s
```

el kernel...

```
#uname -a

Linux michael 2.6.18-gentoo-r4 #7 SMP Thu Dec 21 20:47:13 CET 2006 i686 Intel(R) Pentium(R) D CPU 3.40GHz GenuineIntel GNU/Linux

```

```
<*>   SCSI disk support

< > RAID Transport Class   

--- SCSI device support    

[ ]   legacy /proc/scsi/ support 

---   SCSI support type (disk, tape, CD-ROM) 

<*>   SCSI disk support        

< >   SCSI tape support            

< >   SCSI OnStream SC-x0 tape support          

< >   SCSI CDROM support     

< >   SCSI generic support                     

< >   SCSI media changer support                             

---   Some SCSI devices (e.g. CD jukebox) support multiple LUNs   

[ ]   Probe all LUNs on each SCSI device  

[ ]   Verbose SCSI error reporting (kernel size +=12K)

[ ]   SCSI logging facility      

SCSI Transport Attributes  --->            

SCSI low-level drivers  --->         

<*> Support for Host-side USB  

[ ]   USB verbose debug messages

---   Miscellaneous USB options    

[*]   USB device filesystem     

[ ]   Enforce USB bandwidth allocation (EXPERIMENTAL)      

[ ]   Dynamic USB minor allocation (EXPERIMENTAL)       

[ ]   USB selective suspend/resume and wakeup (EXPERIMENTAL)  

---   USB Host Controller Drivers            

<*>   EHCI HCD (USB 2.0) support      

[ ]     Full speed ISO transactions (EXPERIMENTAL)      

[ ]     Root Hub Transaction Translators (EXPERIMENTAL)    

[ ]     Improved Transaction Translator scheduling (EXPERIMENTAL)          

< >   ISP116X HCD support  

< >   OHCI HCD support 

<*>   UHCI HCD (most Intel and VIA) support 

< >   SL811HS HCD support       

---   USB Device Class drivers    

< >   USB Modem (CDC ACM) support          

 <*>   USB Printer support 

--- NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'    

--- may also be needed; see USB_STORAGE Help for more information 

<*> USB Mass Storage support     

```

i finalmente dmesg:

```
usb 1-6: new high speed USB device using ehci_hcd and address 3

usb 1-6: configuration #1 chosen from 1 choice

scsi0 : SCSI emulation for USB Mass Storage devices

usb-storage: device found at 3

usb-storage: waiting for device to settle before scanning

  Vendor: SAMSUNG   Model: HM120JC           Rev: YL10

  Type:   Direct-Access                      ANSI SCSI revision: 02

SCSI device sda: 234441648 512-byte hdwr sectors (120034 MB)

sda: Write Protect is off

sda: Mode Sense: 53 00 00 08

sda: assuming drive cache: write through

SCSI device sda: 234441648 512-byte hdwr sectors (120034 MB)

sda: Write Protect is off

sda: Mode Sense: 53 00 00 08

sda: assuming drive cache: write through

 sda: sda1 sda2

sd 0:0:0:0: Attached scsi disk sda

usb-storage: device scan complete

kjournald starting.  Commit interval 5 seconds

EXT3 FS on sda2, internal journal

EXT3-fs: mounted filesystem with ordered data mode.

```

que estoy haciendo mal?

dudo que sea qüestion de hard, en el curro, con otro PC totalmente diferente y con un memory stick completamente diferente nos pasa algo similar. Ya no se que excusa dar a mi compañero (al cual quiero iniciar en gentoo linux)!

Espero que se resuelva

PD: arriba teneis un enlace al blog de stolz, donde digo que he probado el tutorial con éxito, creo que tendré que rectificar mis palabras...   :Crying or Very sad: 

----------

## Zagloj

Quita la opción sync del fstab, a mí me ayudó mucho.

 Saludos  :Wink: 

----------

## nandelbosc

La opción sync la puse por consejo leído en otros post.

Por lo que he entendido, sincroniza la copia de ficheros, es decir cuando dice la copia ha finalizado, es que ha finalizado y puedo desmontar-lo sin peligro.

Sin esta opción cuando parece que ha terminado  de copiar (desaparce el cuadro dialogo), al intentar desmontar el dispositivo me dirá que esta ocupado

----------

## esculapio

Tal vez tengas marcado -Device Drivers-Block devices-Low Performance USB Block driver- en el kernel. Habia leido por ahí que daba ese problema.

----------

## nandelbosc

 *Quote:*   

> Tal vez tengas marcado -Device Drivers-Block devices-Low Performance USB Block driver- en el kernel. Habia leido por ahí que daba ese problema.

 

Pues no... ya lo habia comprobado   :Crying or Very sad: 

----------

## pacho2

Prueba a quitar la opción sync como ya te han comentado, si te acostumbras a desmontar el llavero antes de quitarlo no tendrás problemas y ganarás velocidad.

Saludos

----------

## zx80

Si, la opción sync hace q todo vaya más lento. Yo lo puse pero lo acabé quitando y es más, supongo q será por los kernels nuevos, q cuando acaba la copia desmonto y lo admite perfectamente, no me dice q el dispositivo está en uso.

----------

## nandelbosc

De acuerdo!

Esta tarde recompilaremos el kernel y quitaremos la opción sync, a ver que passa.

Por cierto... a que velocidades os graba desde y hacia el USB? en MB no en Mb...   :Wink: 

----------

## nandelbosc

Probado, sin exito   :Crying or Very sad: 

Después de quitar la opción sync del fstab, veo que el problema persiste!

Al copiar un video de 300MB del disco duro al USB Stick empieza muy bién, a 10-12MB/s, pero al 40-50% empieza a bajar hasta quedar-se en 600KB/s

Repito que es un dispositivo 2.0 que esta conectado a una entrada 2.0, tendria que volar a 480Mb/s = 48MB/s, yo me conformaria con 10MB/s, pero no 600KB/s!!!

Tendré que desistir? Mi compañero volverá a poner-se XP? No lo podemos consentir   :Twisted Evil: 

----------

## Zagloj

Pues no se me ocurre mucho más, mira de mantener fuera sync y agregar noatime a ver si funciona  :Confused: 

Por cierto, no estoy seguro, pero normalmente para usb yo tengo

```
0   0
```

 Al final.

 Saludos  :Wink: 

----------

## pcmaster

Vamos a ver, a mí hay algo que no me cuadra. Aquí:

 *nandelbosc wrote:*   

> 
> 
> Al copiar un video de 300MB del disco duro al USB Stick empieza muy bién, a 10-12MB/s, pero al 40-50% empieza a bajar hasta quedar-se en 600KB/s

 

aquí dices que usas un USB stick, que para mí es una memoria USB flash. esas memorias se fabrican en muchas velocidades, las más rápidas son más caras. Yo he llegado a copiar con una tarjeta SD de 2 GB un archivo de 1,4 Gb en unos dos minutos.

Pero en tu dmesg:

 *nandelbosc wrote:*   

> 
> 
> usb 1-6: new high speed USB device using ehci_hcd and address 3
> 
> usb 1-6: configuration #1 chosen from 1 choice
> ...

 

lo que veo es un disco SAMSUNG HM120JC de 120 GB conectado por USB, y eso no es precisamente una memoria flash, sino un disco duro IDE UDMA 100 estándar de ordenador portátil:

http://www.samsung.com/es/products/harddiskdrive/harddiskdrive/hm120jc.asp

Seguramente llamas "USB stick" a eso: a tu disco Samsung metido en una caja externa USB para discos duros. La caja externa USB queda descartado que esté conectando mediante USB 1.1: no sólo la velocidad sería inferior, sino que el dmesg te dice que está conectando como USB 2.0:

```

usb 1-6: new high speed USB device using ehci_hcd and address 3

```

¿Tienes algún otro dispositivo USB 2.0? Si es así, quizá se estén limitando mutuamente el ancho de banda.

----------

## johnlu

Tu problema está muy claro. Intentas hacer 3 copias de tres archivos a un mismo dispositivo de forma simultánea. Así que vuelves locos los cabezales del disco, que se deplazan de un lugar a otro para ir copiando un trocito de cada fichero en 3 lugares distintos. Si quieres copiarlos más rápidamente hazlo de forma tal que se copien uno a uno, en orden, y no todos a la vez. Así los cabezales no perderán tiempo en desplazarse a zonas de disco muy alejadas físicamente y ganarás muchísimo en velocidad.

Supongo que le habrás dado a copiar un fichero, luego a otro y por último a otro más, sin esperar a que terminara la copia de ninguno. Lo más eficiente sería seleccionar los tres y copiarlos los 3 A LA VEZ al destino, así tu administrador de ficheros de tu KDE sabrá que deberá copiar tres ficheros y lo harán en orden.

Me he dado cuenta de esto gracias al pantallazo que has puesto, si no, no hubiera caído en esto. Muy buena idea.

Esto también pasa con el Windows, no es cosa de que Gentoo o el kernel Linux no manejen bien los dispositivos USB ni nada oscuro ni malvado.

----------

## Ark del KAOS

Pues ya que sale el tema...

Siempre me he preguntado como es que el diálogo de copia de KDE no permitía encolar las copias.

¿Sabéis si hay alguna modificación para ello?

----------

## johnlu

¿A qué te refieres con encolar las copias? Si seleccionas varios archivos y los arrastras a otro disco se copiarán uno detrás de otro.

----------

## nandelbosc

Hace dias que no posteo nada, perdón.

pcmaster, en el mensaje donde dices que hay algo que no te cuadra es normal. He hecho pruebas con un pen drive (USB STICK) de 1GB y un disco usb samsung de 120GB, pero siempre copiaba desde uno de estos dispositivos a un HD IDE. Seguramente en algun copy/paste me haya confundido, pero nada mas.

johnlu, es posible que parte de el problema venga de copiar mas de un fichero, pero el screenshot era un ejemplo muy radical.

Os hago un resumen... en mis PC's (portatil i desktop) las copias a, y desde, dispositivos USB funcionan bién. En los del trabajo, uno funciona bién (10MBps), el otro no. Éste último tiene un rendimiento muy bajo, asi que lo atribuiré a un fallo de hard, seguramente un disco IDE. En todo caso, últimamente tengo muy poco tiempo, por lo que no puedo hacer muchas pruebas. De todas formas seguiré informando.

Gracias por todas las respuestas!

 *Quote:*   

> ¿A qué te refieres con encolar las copias? Si seleccionas varios archivos y los arrastras a otro disco se copiarán uno detrás de otro.

 

Supongo que se refiere a seleccionar varios grupos de ficheros y que gestione grupo a grupo.

----------

## Ark del KAOS

 *nandelbosc wrote:*   

> Supongo que se refiere a seleccionar varios grupos de ficheros y que gestione grupo a grupo.

 Ajá...me refiero a darle a copiar X ficheros a Y disco.

Luego, mientras se copian X, mandas copiar Z archivos a Y disco....

Me gustaría que no empezase a copiar Z hasta que no termine X ^ ^

Osea: Gestionar colas...encolar ^ ^

----------

