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 メモリとファイルを同期させるという事をしていました。よって、手間を考えたら、ホームディレクトリの各種レポジトリを外付けのドライブに入れて直接持ち運んでも良いかも。