
私は最近、SanDisk 2TB Extreme PROポータブルSSD(モデルSDSSDE81-2t00)を購入しました。 Linuxシステムに接続し、バックアップを実行した後に遅く実行されることがわかりました。dd
かなり低い速度(50MBps未満)を示すいくつかのテストを経た後、実行してみるとlsusb -t
「高速」USB 2.0である480Mが報告されました。
$ lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 005: ID 04f2:b449 Chicony Electronics Co., Ltd Integrated Camera
Bus 002 Device 003: ID 138a:0017 Validity Sensors, Inc. VFS 5011 fingerprint sensor
Bus 002 Device 011: ID 0781:55af SanDisk Corp. Extreme Pro 55AF <--- here
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lsusb -t
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/11p, 480M
|__ Port 1: Dev 11, If 0, Class=Mass Storage, Driver=uas, 480M <--- here
|__ Port 6: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M
|__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 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/8p, 480M
追加のトラブルシューティング後に動作することが知られているUSB 3.xフラッシュドライブを接続しましたが、速度は正しく5000Mとマークされています。
$ lsusb -t
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 1: Dev 18, If 0, Class=Mass Storage, Driver=usb-storage, 5000M <--- here
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/11p, 480M
|__ Port 6: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M
|__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 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/8p, 480M
その後、新しいSSDを再接続しましたが、速度は5000Mと報告されました!別のLinuxボックスでこのテストを確認しましたが、同じ結果が出ました。カーネルは次のとおりです
- 4.19.107(アンレード・サーバー)
- 5.4.0-64-ユニバーサル(Ubuntu)
Driver=uas
運転者が低速で走行し、Driver=usb-storage
退勤後運転状態に切り替えた点も注目に値する。カーネルモジュールがまだロードされていませんが、フラッシュドライブによってロードが発生していますか?
簡単に言うと:
- 新しいSSDはUSB 2.0の速度を示しています(実際に報告されているように
lsusb
)。 - SSDを取り外し、USB 3.0フラッシュドライブを挿入したら、フラッシュドライブを取り外してSSDを再挿入します。
- これでSSD速度が正確です(実際にはもちろんまで
lsusb
)。 - 両方のコンピュータで再現可能
なぜこれが起こるのですか?さらに、どのようなトラブルシューティングを行うことができますか?これがLinuxカーネルのバグであれば、正しく報告するのに十分な情報を収集したいと思います。
答え1
私のカーネルモジュール理論が正しいという部分的な答えがあります。lsmod
サムドライブの挿入/削除トリックの前後の出力を比較しましたが、結果は非常に明確です。
$ diff lsmod.txt lsmod.txt2
36c36
< usb_storage 77824 1 uas
---
> usb_storage 77824 4 uas
以下を介してこのステータスをコピーした後:
$ sudo modprobe usb_storage
追加のトリックなしでドライブを最大速度で実行できます。
より詳細な情報を提供できる他の回答を歓迎します。