Как узнать скорость USB с терминала?

15

Я использую Ubuntu 12.04. Я здесь, чтобы узнать, есть ли способ наблюдать скорость записи и чтения USB через терминал.

rɑːdʒɑ
источник

Ответы:

6

Вы можете использовать, rsyncчтобы определить приблизительную скорость передачи, хотя она будет варьироваться в зависимости от того, передаются ли небольшие или большие файлы, а также от места назначения - медленная флешка или быстрый внешний жесткий диск. Например:

rsync -avviu ~/Videos /media/Mik2

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

(Кроме того, если вы откроете, tail -f /var/log/kern.logа затем подключите свое устройство, вы увидите, настроено ли оно для ehci (расширенный интерфейс хост-контроллера), который поддерживает скорости USB 2. Например, в журнале ядра должно быть указано «новое высокоскоростное устройство USB». ... используя ehci_hcd '.)


источник
Я предполагаю, что это предвосхитило причину вопроса, но не ответило на поставленный вопрос.
mc0e
13

pvИнструмент позволяет просматривать пропускную способность данных , проходящих через него. После установки пакета вы можете запустить команду, подобную следующей, чтобы увидеть скорость записи:

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

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

Для чтения выполните противоположную операцию, используя только что созданный tmp123файл:

$ cat /media/some_usb/tmp123 | pv > dev/null
noffle
источник
Этот подход, как представляется, дает измеримые и фактические результаты во время выполнения.
AjayKumarBasuthkar
9

Мне было любопытно, так как у меня был SATA 3 SSD, который я хотел использовать для обработки некоторых видеофайлов (чтобы обеспечить минимальное время ожидания ввода / вывода), но в системе были доступны только порты SATA 2 (3Gbps), но также USB3 порт доступен.

Вы можете определить теоретическую максимальную скорость порта для каждого порта USB с помощью команды sudo lsusb -vvv |grep -i -B5 -A5 bcdUSB

Строка bcdUSB возвращает USB-версию порта.

Пример из одной из моих систем:

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

Или быстрая и простая альтернатива, lsusb -tкоторая обеспечивает вывод как это:

/:  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

Так как 5 Гбит / с, доступные через USB3, были намного ближе к 6 Гбит / с, на которые рассчитан SATA 3, я решил подключить накопитель туда Bus 004 Device 002(через адаптер Asmedia USB3toSATA). Результаты были вполне удовлетворительными.

Источники: эта страница

экспериментирование

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

https://en.wikipedia.org/wiki/Serial_ATA Как узнать скорость USB-концентратора

Старейшина Гик
источник
Есть ли способ сопоставить эту информацию с узлом устройства?
Мелаб
@Melab Кажется очевидным в большинстве случаев, учитывая вывод команд наподобие lsblkи содержимое файлов наподобие [etc / mtab] Если у вас есть новый вопрос, пожалуйста, не стесняйтесь задавать его, используя кнопку [Задать вопрос] ( askubuntu.com/questions/) спроси ) в правом верхнем углу страницы.
Старейшина Гик
1
@Flatron Я всегда готов помочь!
Старейшина Компьютерщик
2

Попробуйте с этим:

$ sudo lsusb -vvv

Затем взгляните на записи с именами bDeviceProtocol и bInterfaceProtocol.

jap1968
источник
1
«bInterfaceProtocol 80 Bulk-Only» «bDeviceProtocol 0» означает что? Но этот ответ не подходит для моего вопроса. Спасибо, :)
rʒɑdʒɑ
Вы использовали опцию -vvv? На моем компьютере есть описание, связанное со значением 0: «0 Full speed (или root) hub»
jap1968
Вы правы. Эта информация, кажется, появляется только на некоторых устройствах.
jap1968
1
@ Раджа, беги sudo lsusb -vvv |grep -i -B5 -A5 bDeviceProtocol. Затем посмотрите на записи, перечисленные как bDeviceClass Hub.
Cerin