Como descubro a velocidade USB de um terminal?

15

Estou usando o Ubuntu 12.04. Estou aqui para saber se há alguma maneira de observar a velocidade de gravação e leitura do USB através do terminal.

rɑːdʒɑ
fonte

Respostas:

6

Você pode usar rsyncpara obter uma aproximação da sua velocidade de transferência, embora ela varie dependendo se arquivos pequenos ou grandes estão sendo transferidos e se o destino é uma unidade flash lenta ou um disco rígido externo rápido. Por exemplo:

rsync -avviu ~/Videos /media/Mik2

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

(Além disso, se você abrir tail -f /var/log/kern.loge conectar o dispositivo, poderá ver se ele está sendo configurado para ehci (interface avançada do controlador de host), que suporta velocidades USB 2. Por exemplo, o log do kernel deve indicar 'novo dispositivo USB de alta velocidade ... usando ehci_hcd '.)


fonte
Eu acho que isso antecipou o motivo da pergunta, mas não respondeu à pergunta como colocada.
mc0e
13

A pvferramenta permite visualizar a taxa de transferência dos dados que fluem por ela. Após a instalação do pacote, você pode executar um comando como o seguinte para ver a taxa de gravação:

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

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

Para leitura, execute a operação oposta usando o tmp123arquivo recém-criado :

$ cat /media/some_usb/tmp123 | pv > dev/null
noffle
fonte
Essa abordagem parece fornecer resultados mensuráveis ​​e reais em tempo de execução.
AjayKumarBasuthkar 19/09/19
9

Fiquei curioso sobre isso, pois tinha um SSD SATA 3 que queria usar para processar alguns arquivos de vídeo (para manter a espera de E / S no mínimo), mas tinha apenas portas SATA 2 (3Gbps) disponíveis no sistema, mas também um Porta USB3 disponível.

Você pode determinar a velocidade máxima teórica da porta para cada porta USB com o comando sudo lsusb -vvv |grep -i -B5 -A5 bcdUSB

A linha bcdUSB retorna a versão USB da porta.

Um exemplo de um dos meus 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

Ou a alternativa rápida e fácil lsusb -tque fornece 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

Como os 5 Gbps disponíveis via USB3 estavam muito mais próximos dos 6 Gbps em que o SATA 3 é avaliado, decidi conectar a unidade Bus 004 Device 002(através do adaptador Asmedia USB3toSATA). Os resultados foram bastante satisfatórios.

Fontes: Esta página

Experimentação

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

https://en.wikipedia.org/wiki/Serial_ATA Como encontrar a velocidade do hub USB

Elder Geek
fonte
Existe alguma maneira de correlacionar essas informações com um nó do dispositivo?
MELAB
@Melab Parece óbvio na maioria dos casos, dada a saída de comandos como lsblke o conteúdo de arquivos como [etc / mtab] Se você tiver uma nova pergunta, não hesite em perguntar usando o [botão Fazer pergunta] ( askubuntu.com/questions/ perguntar ) no canto superior direito da página.
Elder Geek
1
@Flatron Estou sempre ansioso para ajudar!
Elder Geek
2

Tente com isto:

$ sudo lsusb -vvv

Em seguida, dê uma olhada nas entradas denominadas bDeviceProtocol e bInterfaceProtocol

jap1968
fonte
1
"bInterfaceProtocol 80 somente em massa" "bDeviceProtocol 0" significa o que? Mas esta resposta não é adequado à minha pergunta .obrigado, :)
rɑːdʒɑ
Você usou a opção -vvv? No meu computador, há uma descrição associada ao valor 0: "0 Velocidade total (ou root) hub"
jap1968
pastebin.com/z2ESbyZL
rɑːdʒɑ 11/07/12
Você está certo. Esta informação parece aparecer apenas em alguns dispositivos.
191919 jap1968
1
@ Raja, Run sudo lsusb -vvv |grep -i -B5 -A5 bDeviceProtocol. Em seguida, observe as entradas listadas como bDeviceClass Hub.
Cerin