USB 硬盘 I/O 速度慢

USB 硬盘 I/O 速度慢

我有一些Mediasonic ProBox HF2-SU3S2有 4 个驱动器 - 都具有相同的症状 - I/O 极慢(最多约为 10MB/s 写入)。每个单元均配置有使用 mdadm 和 4 个驱动器的软件 RAID 5。

它确实连接到了 USB 2.1 端口,我预计它会比 USB 3.0 慢,但 10MB/s 对我来说似乎慢得令人怀疑和可笑。

我可以为每个驱动器发布 smartctl -a 输出 - 但没有一个驱动器出现故障,并且没有错误被记录到与驱动器相关的系统日志中。

以下是第一个单元中的驱动器:

Device Model:     ST2000DL003-9VT166
Device Model:     ST2000DM001-1ER164
Device Model:     ST2000DM001-1CH164
Device Model:     ST2000DM001-1CH164

第二单元驱动器:

Device Model:     ST2000DL003-9VT166
Device Model:     ST2000DL003-9VT166
Device Model:     WDC WD20EADS-00R6B0
Device Model:     ST2000DL003-9VT166

内核版本:

3.16.0-6-amd64 #1 SMP Debian 3.16.57-2

挂载输出:

/dev/md2 on /mnt/nas type ext4 (rw,relatime,stripe=256,data=ordered)
/dev/md3 on /mnt/nas2 type ext4 (rw,relatime,stripe=384,data=ordered)

/proc/mdstat 的输出

md3 : active raid5 sdg[5] sdj[4] sdi[6] sdh[1]
      5860150272 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      bitmap: 0/15 pages [0KB], 65536KB chunk

md2 : active raid5 sdc1[0] sdf1[4] sdd1[6] sde1[5]
      5860141056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]

使用 dd 进行测试:

root@talon:/mnt/nas2# dd if=/dev/zero of=/mnt/nas2/testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 71.1888 s, 15.1 MB/s

root@talon:/mnt/nas# dd if=/dev/zero of=/mnt/nas/testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 80.8867 s, 13.3 MB/s

mdadm --detail 的输出

/dev/md2:
        Version : 1.2
  Creation Time : Wed May  1 22:26:29 2013
     Raid Level : raid5
     Array Size : 5860141056 (5588.67 GiB 6000.78 GB)
  Used Dev Size : 1953380352 (1862.89 GiB 2000.26 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Wed Dec  5 21:29:12 2018
          State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : dev-vm01:0
           UUID : dc4e42f6:3c3eb2f7:d6137927:51e328ef
         Events : 21688

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       5       8       65        1      active sync   /dev/sde1
       6       8       49        2      active sync   /dev/sdd1
       4       8       81        3      active sync   /dev/sdf1

=-===-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

/dev/md3:
        Version : 1.2
  Creation Time : Sat Mar 10 11:08:14 2018
     Raid Level : raid5
     Array Size : 5860150272 (5588.67 GiB 6000.79 GB)
  Used Dev Size : 1953383424 (1862.89 GiB 2000.26 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Wed Dec  5 21:23:31 2018
          State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : dragon:0
           UUID : 70d8f410:462c6714:50231e20:b08aca81
         Events : 151906

    Number   Major   Minor   RaidDevice State
       5       8       96        0      active sync   /dev/sdg
       1       8      112        1      active sync   /dev/sdh
       6       8      128        2      active sync   /dev/sdi
       4       8      144        3      active sync   /dev/sdj

更详细的信息

root@talon:/mnt/nas# lsusb
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 152d:0567 JMicron Technology Corp. / JMicron USA Technology Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 152d:0567 JMicron Technology Corp. / JMicron USA Technology Corp.
Bus 001 Device 002: ID 2109:3431
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@talon:/mnt/nas# lsusb -v -s 3:2

Bus 003 Device 002: ID 152d:0567 JMicron Technology Corp. / JMicron USA Technology Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x152d JMicron Technology Corp. / JMicron USA Technology Corp.
  idProduct          0x0567
  bcdDevice            2.05
  iManufacturer          10 JMicron
  iProduct               11 USB to ATA/ATAPI Bridge
  iSerial                 5 152D00539000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 USB Mass Storage
    bmAttributes         0xc0
      Self Powered
    MaxPower               50mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              6 MSC Bulk-Only Transport
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           22
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000002
      Link Power Management (LPM) Supported
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat        2047 micro seconds
Device Status:     0x0001
  Self Powered


=-=-=-=-=-=-=-=-=-==-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

root@talon:/mnt/nas# lsusb -v -s 1:3

Bus 001 Device 003: ID 152d:0567 JMicron Technology Corp. / JMicron USA Technology Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x152d JMicron Technology Corp. / JMicron USA Technology Corp.
  idProduct          0x0567
  bcdDevice            2.05
  iManufacturer          10 JMicron
  iProduct               11 USB to ATA/ATAPI Bridge
  iSerial                 5 152D00539000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 USB Mass Storage
    bmAttributes         0xc0
      Self Powered
    MaxPower               50mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              6 MSC Bulk-Only Transport
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
       bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           22
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000002
      Link Power Management (LPM) Supported
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat        2047 micro seconds
Device Status:     0x0001
  Self Powered

“看起来它确实连接到了 USB 2.1 端口”。你是如何确认这一点的?

查看 lsusb 的输出。

bcdUSB               2.10

使用什么主板或电脑型号,使用哪个 USB 端口?

主板:GA-78LMT-USB3 我必须验证版本和确切的端口。

您是否尝试过该 PC 上的其他端口?如果是,是否得到相同的结果?

是 - 2 个设备通过不同的 USB 端口插入同一桌面。我什至从 Raspberry Pi 获得这些速度。

USB 2.0 比 USB 3.0 慢得多。通过 USB 2.0 直接连接的硬盘几乎不会超过 20 MB/秒,而在 USB 3.0 上,即使是小型 2.5 英寸磁盘也能达到 100 MB/秒。

磁盘的大小并不重要。我不相信这一点 - 有许多资源表明速度会很慢,但会快于 10MB/s。

我将其中一个设备插入已知的 USB 3.0 端口:

Bus 002 Device 002: ID 152d:0567 JMicron Technology Corp. / JMicron USA Technology Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         9
  idVendor           0x152d JMicron Technology Corp. / JMicron USA Technology Corp.
  idProduct          0x0567
  bcdDevice            2.05
  iManufacturer          10 JMicron
  iProduct               11 USB to ATA/ATAPI Bridge
  iSerial                 5 152D00539000

现在我的传输速度提高了 3 倍,但还远未达到应有的速度:

root@talon:/mnt/nas2# dd if=/dev/zero of=/mnt/nas2/testfile4 bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 32.2737 s, 33.3 MB/s

fdisk 的输出:

Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe3b023b3

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdc1          63 3907024064 3907024002  1.8T 83 Linux


Disk /dev/sdd: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x580e98e6

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdd1        2048 3907029167 3907027120  1.8T 83 Linux


Disk /dev/sde: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000d19a7

Device     Boot Start        End    Sectors  Size Id Type
/dev/sde1        2048 3907028991 3907026944  1.8T 83 Linux


Disk /dev/sdf: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc16a55ab

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdf1        2048 3907029167 3907027120  1.8T 83 Linux

Disk /dev/sdg: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc91d9f27

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdg1        2048 3907028991 3907026944  1.8T fd Linux raid autodetect


Disk /dev/sdj: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x65cd7624

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdj1        2048 3907028991 3907026944  1.8T fd Linux raid autodetect


Disk /dev/sdi: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x03221dd4

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdi1        2048 3907028991 3907026944  1.8T fd Linux raid autodetect


Disk /dev/sdh: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc91329ab

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdh1        2048 3907028991 3907026944  1.8T fd Linux raid autodetect

编辑:我做了一些故障排除,发现这是 USB 控制器的问题。不确定这是否是 Linux 和主板上 USB 控制器的兼容性问题 - 但我尝试使用更高版本的内核,但 Linux 甚至拒绝初始化 USB 3.0 端口上的设备。然而,在具有 USB 3.0 连接的笔记本电脑上尝试 Probox 效果非常好。

答案1

USB2 速度 (60MB/s) 除以同时写入的 RAID 中的驱动器数量 (4) 等于 15 MB/s,加上一些开销,10 听起来很合理。

测试卸载 RAID 以确保它没有使用总线,然后运行

hdparm -Tt /dev/sdh

答案2

事实证明,内置 USB 控制器的价值不及印刷在其上的硅胶。我安装了 PCI-e USB 3.1 控制器,现在速度为 61MB/s,而不是 10MB/s。就数据传输速度而言仍然不是“快” - 但 60MB/s 是一个巨大的差异。

相关内容