USB 3.x 플래시 드라이브를 삽입하고 제거하면 USB 3.2 SSD 속도가 "수정"됩니다(이전에는 2.0 속도로 실행).

USB 3.x 플래시 드라이브를 삽입하고 제거하면 USB 3.2 SSD 속도가 "수정"됩니다(이전에는 2.0 속도로 실행).

저는 최근 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-유니버설(우분투)

Driver=uas운전자가 저속으로 주행하다가 Driver=usb-storage퇴근 후 운전상태로 전환한 점도 주목할 만하다 . 커널 모듈이 아직 로드되지 않았는데 플래시 드라이브로 인해 로드가 발생하고 있는 것일까요?

간단히 말해서:

  1. 새로운 SSD는 USB 2.0 속도를 보여줍니다(실제로 보고된 대로 lsusb).
  2. SSD를 분리하고 USB 3.0 플래시 드라이브를 삽입한 후 플래시 드라이브를 제거하고 SSD를 다시 삽입하세요.
  3. 이제 SSD 속도가 정확합니다(실제로는 물론 까지 lsusb).
  4. 두 컴퓨터 모두에서 재현 가능

왜 이런 일이 발생합니까? 추가로 어떤 문제 해결을 할 수 있나요?이것이 Linux 커널 버그라면 제대로 보고할 수 있을 만큼 충분한 정보를 수집하고 싶습니다.

답변1

내 커널 모듈 이론이 정확하다는 부분적인 대답이 있습니다. lsmod썸 드라이브 삽입/제거 트릭 전후의 출력을 비교했는데 결과는 매우 명확합니다.

$ diff lsmod.txt lsmod.txt2
36c36
< usb_storage            77824  1 uas
---
> usb_storage            77824  4 uas

다음을 통해 이 상태를 복사한 후:

$ sudo modprobe usb_storage

추가 트릭 없이 드라이브를 최대 속도로 실행할 수 있습니다.

더 자세한 내용을 제공할 수 있는 다른 답변을 환영합니다.

관련 정보