USB の接続速度を確認

目次

目的

USB で接続されたデバイスの接続速度を確認する。

方法

USB に接続されたデバイスの接続速度は、lsusbコマンドを使って調べることができます。

まず、オプションなしにlsusbコマンドを実行すると、デバイスの ID を取得できます。

$ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0bda:9210 Realtek Semiconductor Corp. RTL9210 M.2 NVME Adapter
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

接続速度を調べるには、-tオプションを使用します。

$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 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/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 480M

このサンプルでは USB 2.0 で接続していますが、480Mbps で接続されることがわかります。

次に接続を USB 3.1 に変えると 5000M (5Gbps) となります。

$ lsusb | grep 0bda:9210
Bus 002 Device 005: ID 0bda:9210 Realtek Semiconductor Corp. RTL9210B-CG

# Or

$ lsusb -d 0bda:9210
Bus 002 Device 005: ID 0bda:9210 Realtek Semiconductor Corp. RTL9210B-CG

$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 10000M
    |__ Port 3: Dev 5, If 0, Class=Mass Storage, Driver=uas, 5000M
    |__ Port 4: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 3: Dev 2, If 0, Class=Vendor Specific Class, Driver=asix, 480M

余談

USB 2.0 と 3.1 では、10 倍以上も速さが違うのですね。この速度は、SATA が普及し始めた頃の Link Speed は 3Gbps だった(最近は 6Gbps)ので、リンク速度だけ見ると USB 接続でも 3.1 なら遜色ありません。

さすがにファイルのアクセス速度を測るベンチマークでは圧倒的に SATA の方が速いようです。しかし SSD ではなくハードディスクで調べると、ハードディスクがボトルネックとなり差が小さくなります。

今まではネットワーク接続できない別のマシンを使うときには、USB メモリ上のデータとファイルを同期し、更に別のマシンでその USB メモリとファイルを同期させるという事をしていました。よって、手間を考えたら、ホームディレクトリの各種レポジトリを外付けのドライブに入れて直接持ち運んでも良いかも。