¿Cómo descubro la velocidad USB desde un terminal?

15

Estoy usando Ubuntu 12.04. Estoy aquí para saber si hay alguna forma de observar la velocidad de escritura y lectura del USB a través del terminal.

rɑːdʒɑ
fuente

Respuestas:

6

Puede usar rsyncpara dar una aproximación de su velocidad de transferencia, aunque variará dependiendo de si se transfieren archivos pequeños o grandes y si el destino es una unidad flash lenta o un disco duro externo rápido. Por ejemplo:

rsync -avviu ~/Videos /media/Mik2

sent 874419803 bytes  received 149 bytes  4427442.79 bytes/sec
total size is 874312527  speedup is 1.00

(Además, si abre tail -f /var/log/kern.logy luego conecta su dispositivo, puede ver si se está configurando para ehci (interfaz de controlador de host mejorada), que admite velocidades USB 2. Por ejemplo, el registro del kernel debería indicar 'nuevo dispositivo USB de alta velocidad ... usando ehci_hcd '.)


fuente
Supongo que esto anticipó el motivo de la pregunta, pero no respondió a la pregunta planteada.
mc0e
13

La pvherramienta le permite ver el rendimiento de los datos que fluyen a través de él. Después de instalar el paquete, puede ejecutar un comando como el siguiente para ver la velocidad de escritura:

$ cat /dev/zero | pv > /media/some_usb/tmp123

203.1MiB 0:00:02 [100.2MiB/s] [ <=>                   ]

Para leer, realice la operación opuesta utilizando el tmp123archivo recién creado :

$ cat /media/some_usb/tmp123 | pv > dev/null
noffle
fuente
Este enfoque parece dar resultados medibles y reales en tiempo de ejecución.
AjayKumarBasuthkar
9

Tenía curiosidad sobre esto, ya que tenía un SSD SATA 3 que quería usar para procesar algunos archivos de video (para mantener las esperas de E / S al mínimo) pero solo tenía puertos SATA 2 (3Gbps) disponibles en el sistema, pero también un Puerto USB3 disponible.

Puede determinar la velocidad máxima teórica del puerto para cada puerto USB con el comando sudo lsusb -vvv |grep -i -B5 -A5 bcdUSB

La línea bcdUSB devuelve la versión USB del puerto.

Un ejemplo de uno de mis sistemas:

Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x8087 Intel Corp.
--
   Port 7: 0000.0100 power
   Port 8: 0000.0100 power
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  bNumConfigurations      1
--

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
--

Bus 001 Device 003: ID 10d5:5a08 Uni Class Technology Co., Ltd 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x10d5 Uni Class Technology Co., Ltd
--

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x8087 Intel Corp.
--
   Port 5: 0000.0100 power
   Port 6: 0000.0303 lowspeed power enable connect
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  bNumConfigurations      1
--

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
--

Bus 004 Device 002: ID 174c:5106 ASMedia Technology Inc. Transcend StoreJet 25M3
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x174c ASMedia Technology Inc.
--

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
--

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation

O la alternativa rápida y fácil de las lsusb -tcuales proporciona resultados como este:

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 4: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 6: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 6: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M

Dado que los 5 Gbps disponibles a través de USB3 estaban mucho más cerca de los 6 Gbps que SATA 3 tiene una clasificación, decidí conectar la unidad allí Bus 004 Device 002(a través del adaptador Asmedia USB3toSATA). Los resultados fueron bastante satisfactorios.

Fuentes: esta página

Experimentación

https://en.wikipedia.org/wiki/USB

https://en.wikipedia.org/wiki/Serial_ATA Cómo encontrar la velocidad del concentrador USB

Elder Geek
fuente
¿Hay alguna forma de correlacionar esa información con un nodo de dispositivo?
Melab
@Melab Parece obvio en la mayoría de los casos, dada la salida de comandos como lsblky el contenido de archivos como [etc / mtab]. Si tiene una nueva pregunta, no dude en preguntar utilizando el [botón Preguntar pregunta] ( askubuntu.com/questions/ preguntar ) en la esquina superior derecha de la página.
Élder Geek
1
@Flatron ¡ Siempre
Elder Geek
2

Prueba con esto:

$ sudo lsusb -vvv

Luego, eche un vistazo a las entradas llamadas bDeviceProtocol y bInterfaceProtocol

jap1968
fuente
1
"bInterfaceProtocol 80 Bulk-Only" "bDeviceProtocol 0" significa qué? Pero esta respuesta no es adecuada para mi pregunta. Gracias, :)
rɑːdʒɑ
¿Usó la opción -vvv? En mi computadora, hay una descripción asociada al valor 0: "0 concentrador de velocidad máxima (o raíz)"
jap1968
Tienes razón. Esta información parece aparecer solo en algunos dispositivos.
jap1968
1
@Raja, corre sudo lsusb -vvv |grep -i -B5 -A5 bDeviceProtocol. Luego mire las entradas enumeradas como bDeviceClass Hub.
Cerin