USB 硬碟 I/O 速度慢
我有幾個帶有 4 個驅動器的 Mediasonic ProBox HF2-SU3S2 - 都有相同的症狀 - 極慢的 I/O(充其量約為 10MB/s 寫入)。每個單元都配置有軟體 RAID 5,使用 mdadm 和 4 個驅動器。
它確實似乎連接到了 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
使用的是什麼主機板或 PC 型號,使用的是哪個 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。
- https://www.speedguide.net/faq/what-is-the-typical-usb-20-external-hard-drive-403
- https://askubuntu.com/questions/41397/external-usb-hard-drives-what-speeds-should-be-expected
- https://superuser.com/questions/664397/usb-3-0-vs-usb-2-0-for-external-hard-disks-drives
我將其中一個單元插入一個已知的 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 效果很好。
事實證明,內置的 USB 控制器不值得印在上面的矽膠。我安裝了一個 PCI-e USB 3.1 控制器,現在我得到了 61MB/s 而不是 10MB/s。在數據傳輸速度方面仍然不是“快” - 但 60MB/s 是一個巨大的差異。
USB2 速度 (60MB/s) 除以您同時寫入的 RAID 中的驅動器數量 (4) 等於 15 MB/s,加上一些成本,10 聽起來很合理。
測試解除安裝 RAID 以確保它沒有使用匯流排然後執行
hdparm -Tt /dev/sdh