Wie finde ich die USB-Geschwindigkeit an einem Terminal heraus?

15

Ich benutze Ubuntu 12.04. Ich bin hier, um zu wissen, ob es eine Möglichkeit gibt, die Schreib- und Lesegeschwindigkeit des USB über das Terminal zu überwachen.

rɑːdʒɑ
quelle

Antworten:

6

Mit können Sie rsynceine ungefähre Angabe zur Übertragungsgeschwindigkeit machen. Diese hängt jedoch davon ab, ob kleine oder große Dateien übertragen werden und ob es sich bei dem Ziel um ein langsames Flash-Laufwerk oder eine schnelle externe Festplatte handelt. Beispielsweise:

rsync -avviu ~/Videos /media/Mik2

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

(Wenn Sie tail -f /var/log/kern.logIhr Gerät öffnen und dann anschließen, können Sie feststellen, ob es für ehci (Enhanced Host Controller Interface) eingerichtet ist, das USB 2-Geschwindigkeiten unterstützt. Im Kernel-Protokoll sollte beispielsweise "Neues Hochgeschwindigkeits-USB-Gerät" angegeben sein ... mit ehci_hcd '.)


quelle
Ich vermute, dies hat den Grund für die Frage vorweggenommen, aber die Frage wurde nicht als gestellt beantwortet.
mc0e
13

Mit dem pvTool können Sie den Durchsatz der durchfließenden Daten anzeigen. Nach der Installation des Pakets können Sie einen Befehl wie den folgenden ausführen, um die Schreibrate zu ermitteln:

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

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

Führen Sie zum Lesen den umgekehrten Vorgang mit der neu erstellten tmp123Datei aus:

$ cat /media/some_usb/tmp123 | pv > dev/null
Noffle
quelle
Dieser Ansatz scheint messbare und tatsächliche Laufzeitergebnisse zu liefern.
AjayKumarBasuthkar
9

Ich war neugierig, da ich eine SATA 3-SSD hatte, die ich für die Verarbeitung einiger Videodateien verwenden wollte (um die Wartezeiten auf E / A auf ein Minimum zu beschränken), aber ich hatte nur SATA 2-Anschlüsse (3Gbps) auf dem System, aber auch einen USB3-Anschluss verfügbar.

Mit dem Befehl können Sie die theoretische maximale Geschwindigkeit des Ports für jeden USB-Port bestimmen sudo lsusb -vvv |grep -i -B5 -A5 bcdUSB

Die bcdUSB-Leitung gibt die USB-Version des Anschlusses zurück.

Ein Beispiel aus einem meiner Systeme:

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

Oder die schnelle und einfache Alternative, lsusb -tdie folgende Ausgabe liefert:

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

Da die über USB3 verfügbaren 5 Gbit / s den von SATA 3 angegebenen 6 Gbit / s weit näher kamen, habe ich mich entschieden, das Laufwerk dort anzuschließen Bus 004 Device 002(über den Asmedia USB3toSATA-Adapter). Die Ergebnisse waren sehr zufriedenstellend.

Quellen: Diese Seite

Experimentieren

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

https://en.wikipedia.org/wiki/Serial_ATA So ermitteln Sie die USB-Hub-Geschwindigkeit

Elder Geek
quelle
Gibt es überhaupt eine Möglichkeit, diese Informationen mit einem Geräteknoten zu korrelieren?
Melab
@ Melab Scheint in den meisten Fällen angesichts der Ausgabe von Befehlen wie lsblkund des Inhalts von Dateien wie [etc / mtab] offensichtlich. Wenn Sie eine neue Frage haben, können Sie diese gerne über die Schaltfläche [Frage stellen] stellen ( askubuntu.com/questions/ frage ) in der oberen rechten Ecke der Seite.
Elder Geek
1
@Flatron Ich bin immer bemüht zu helfen!
Elder Geek
2

Versuchen Sie es mit diesem:

$ sudo lsusb -vvv

Schauen Sie sich dann die Einträge mit den Namen bDeviceProtocol und bInterfaceProtocol an

jap1968
quelle
1
"bInterfaceProtocol 80 Bulk-Only" "bDeviceProtocol 0" bedeutet was? Diese Antwort ist jedoch nicht für "Meine Frage" geeignet. Vielen Dank :)
rʒɑdɑː
Haben Sie die Option -vvv verwendet? In meinem Computer gibt es eine Beschreibung für den Wert 0: "0 Full Speed ​​(oder Root) Hub"
jap1968
Du hast recht. Diese Informationen scheinen nur auf einigen Geräten zu erscheinen.
jap1968
1
@ Raja, lauf sudo lsusb -vvv |grep -i -B5 -A5 bDeviceProtocol. Schauen Sie sich dann die Einträge an, die als bDeviceClass Hub aufgeführt sind.
Cerin,