Jump to content

Extremely slow HDD speeds using PCIe 1x w/ ata_piix


Recommended Posts

Hello,

 

I've had this nagging issue with slow performance when copying files to my UNRAID system.  I'm lucky to get around 5MB/sec over a gigabit switch, I would expect at least 20MB/sec.  I ran some speed tests using hdparm against all six of my HDD:

 

/dev/sda:

Timing cached reads:   1690 MB in  2.00 seconds = 845.17 MB/sec

Timing buffered disk reads:  314 MB in  3.02 seconds = 104.07 MB/sec

root@sumner-nas:/dev# hdparm -tT /dev/sdb

 

/dev/sdb:

Timing cached reads:   1670 MB in  2.00 seconds = 835.25 MB/sec

Timing buffered disk reads:  296 MB in  3.01 seconds =  98.49 MB/sec

root@sumner-nas:/dev# hdparm -tT /dev/sdc

 

/dev/sdd:

Timing cached reads:   2044 MB in  2.00 seconds = 1022.22 MB/sec

Timing buffered disk reads:  318 MB in  3.01 seconds = 105.63 MB/sec

 

/dev/sdd:

Timing cached reads:   2070 MB in  2.00 seconds = 1035.58 MB/sec

Timing buffered disk reads:  316 MB in  3.01 seconds = 104.89 MB/sec

root@sumner-nas:/dev# hdparm -tT /dev/sde

 

/dev/sde: parity

Timing cached reads:   1750 MB in  2.00 seconds = 875.35 MB/sec

Timing buffered disk reads:   42 MB in  3.01 seconds =  13.94 MB/sec

root@sumner-nas:/dev# hdparm -tT /dev/sdf

 

/dev/sdf: disk1

Timing cached reads:   2004 MB in  2.00 seconds = 1001.96 MB/sec

Timing buffered disk reads:  138 MB in  3.04 seconds =  45.41 MB/sec

 

I noticed that that performance of my parity and disk1 was a fraction of my other four disks.  I compared the HD settings across each disk:

 

/dev/sda: (disk2)

 

Model=ST31500341AS, FwRev=CC1H, SerialNo=9VS0LV1J

Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }

RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4

BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=off

CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168

IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

PIO modes:  pio0 pio1 pio2 pio3 pio4

DMA modes:  mdma0 mdma1 mdma2

UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6

AdvancedPM=no WriteCache=enabled

Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

 

/dev/sdb: (disk3)

 

Model=ST31500341AS, FwRev=CC1H, SerialNo=9VS0J95H

Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }

RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4

BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=off

CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168

IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

PIO modes:  pio0 pio1 pio2 pio3 pio4

DMA modes:  mdma0 mdma1 mdma2

UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6

AdvancedPM=no WriteCache=enabled

Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

 

/dev/sdc: (disk4)

 

Model=ST31500341AS, FwRev=CC1H, SerialNo=9VS0J7BY

Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }

RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4

BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=off

CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168

IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

PIO modes:  pio0 pio1 pio2 pio3 pio4

DMA modes:  mdma0 mdma1 mdma2

UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6

AdvancedPM=no WriteCache=enabled

Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

 

/dev/sdd: (disk5)

 

Model=ST31500341AS, FwRev=CC1H, SerialNo=9VS0MDCA

Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }

RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4

BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=off

CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168

IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

PIO modes:  pio0 pio1 pio2 pio3 pio4

DMA modes:  mdma0 mdma1 mdma2

UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6

AdvancedPM=no WriteCache=enabled

Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

 

/dev/sde: parity

 

Model=ST31500341AS, FwRev=CC1H, SerialNo=9VS0MCZC

Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }

RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4

BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16

CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168

IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

PIO modes:  pio0 pio1 pio2 pio3 pio4

DMA modes:  mdma0 mdma1 mdma2

UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6

AdvancedPM=no WriteCache=enabled

Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

 

/dev/sdf: (disk1)

 

Model=ST31500341AS, FwRev=CC1H, SerialNo=9VS0C9EB

Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }

RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4

BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16

CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168

IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}

PIO modes:  pio0 pio1 pio2 pio3 pio4

DMA modes:  mdma0 mdma1 mdma2

UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6

AdvancedPM=no WriteCache=enabled

Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

 

Only thing that is difference is that MultSect is disabled on the four disks that perform well vs. MultiSect=16 on the two disks that are slow.  I also determined that the two disks that are slow are using the PCIe SATA controller (ata_piix) where as the other four disks are using the onboard SATA controller (sata_promise).  I have AHCI disabled and NCQ enabled.  I realize that PCIe bus is slower then the onboard bus but this seems extremely different in performance.  My understand is that PCIe 1x can handle up to:

 

PCI = 33Mhz x 4 bytes (32 bits) = 133MB/s

 

The card I'm using in the PCIe bus support 300Mb/s SATA II.

 

So I was expecting to see the those two HDD performing at the similar speed to the other four.

 

Does anyone have any ideas as to what I should expect for performance and if there is something I can do to improve performance?

 

Regards,

Scott

Link to comment

I run SMART reports nightly on each HDD and I looked that the reports for the parity and disk1 and I don't see any issues.  Here is the report from last night on my parity drive:

 

 

TEST for ST31500341AS_9VS0MCZC on 20110306

smartctl 5.39.1 2010-01-28 r3054 [i486-slackware-linux-gnu] (local build)

Copyright © 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

 

=== START OF INFORMATION SECTION ===

Model Family:    Seagate Barracuda 7200.11 family

Device Model:    ST31500341AS

Serial Number:    9VS0MCZC

Firmware Version: CC1H

User Capacity:    1,500,301,910,016 bytes

Device is:        In smartctl database [for details use: -P show]

ATA Version is:  8

ATA Standard is:  ATA-8-ACS revision 4

Local Time is:    Sun Mar  6 04:40:03 2011 Local time zone must be set--see zic m

SMART support is: Available - device has SMART capability.

SMART support is: Enabled

 

=== START OF READ SMART DATA SECTION ===

SMART overall-health self-assessment test result: PASSED

 

General SMART Values:

Offline data collection status:  (0x82) Offline data collection activity

was completed without error.

Auto Offline Data Collection: Enabled.

Self-test execution status:      (  0) The previous self-test routine completed

without error or no self-test has ever

been run.

Total time to complete Offline

data collection: ( 609) seconds.

Offline data collection

capabilities: (0x7b) SMART execute Offline immediate.

Auto Offline data collection on/off support.

Suspend Offline collection upon new

command.

Offline surface scan supported.

Self-test supported.

Conveyance Self-test supported.

Selective Self-test supported.

SMART capabilities:            (0x0003) Saves SMART data before entering

power-saving mode.

Supports SMART auto save timer.

Error logging capability:        (0x01) Error logging supported.

General Purpose Logging supported.

Short self-test routine

recommended polling time: (  1) minutes.

Extended self-test routine

recommended polling time: ( 255) minutes.

Conveyance self-test routine

recommended polling time: (  2) minutes.

SCT capabilities:       (0x103f) SCT Status supported.

SCT Feature Control supported.

SCT Data Table supported.

 

SMART Attributes Data Structure revision number: 10

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME          FLAG    VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE

  1 Raw_Read_Error_Rate    0x000f  117  099  006    Pre-fail  Always      -      132989452

  3 Spin_Up_Time            0x0003  094  092  000    Pre-fail  Always      -      0

  4 Start_Stop_Count        0x0032  099  099  020    Old_age  Always      -      1392

  5 Reallocated_Sector_Ct  0x0033  061  061  036    Pre-fail  Always      -      1625

  7 Seek_Error_Rate        0x000f  058  058  030    Pre-fail  Always      -      111686387360

  9 Power_On_Hours          0x0032  079  079  000    Old_age  Always      -      18782

10 Spin_Retry_Count        0x0013  100  100  097    Pre-fail  Always      -      1

12 Power_Cycle_Count      0x0032  100  100  020    Old_age  Always      -      74

184 End-to-End_Error        0x0032  100  100  099    Old_age  Always      -      0

187 Reported_Uncorrect      0x0032  099  099  000    Old_age  Always      -      1

188 Command_Timeout        0x0032  100  099  000    Old_age  Always      -      4295032833

189 High_Fly_Writes        0x003a  001  001  000    Old_age  Always      -      200

190 Airflow_Temperature_Cel 0x0022  072  053  045    Old_age  Always      -      28 (Lifetime Min/Max 17/29)

194 Temperature_Celsius    0x0022  028  047  000    Old_age  Always      -      28 (0 7 0 0)

195 Hardware_ECC_Recovered  0x001a  035  026  000    Old_age  Always      -      132989452

197 Current_Pending_Sector  0x0012  100  100  000    Old_age  Always      -      0

198 Offline_Uncorrectable  0x0010  100  100  000    Old_age  Offline      -      0

199 UDMA_CRC_Error_Count    0x003e  200  200  000    Old_age  Always      -      0

240 Head_Flying_Hours      0x0000  100  253  000    Old_age  Offline      -      156903745270014

241 Total_LBAs_Written      0x0000  100  253  000    Old_age  Offline      -      2754501256

242 Total_LBAs_Read        0x0000  100  253  000    Old_age  Offline      -      3165259899

 

SMART Error Log Version: 1

ATA Error Count: 1

CR = Command Register [HEX]

FR = Features Register [HEX]

SC = Sector Count Register [HEX]

SN = Sector Number Register [HEX]

CL = Cylinder Low Register [HEX]

CH = Cylinder High Register [HEX]

DH = Device/Head Register [HEX]

DC = Device Command Register [HEX]

ER = Error register [HEX]

ST = Status register [HEX]

Powered_Up_Time is measured from power on, and printed as

DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,

SS=sec, and sss=millisec. It "wraps" after 49.710 days.

 

Error 1 occurred at disk power-on lifetime: 5628 hours (234 days + 12 hours)

  When the command that caused the error occurred, the device was active or idle.

 

  After command completion occurred, registers were:

  ER ST SC SN CL CH DH

  -- -- -- -- -- -- --

  40 51 00 ff ff ff 0f  Error: UNC at LBA = 0x0fffffff = 268435455

 

  Commands leading to the command that caused the error were:

  CR FR SC SN CL CH DH DC  Powered_Up_Time  Command/Feature_Name

  -- -- -- -- -- -- -- --  ----------------  --------------------

  25 00 30 ff ff ff ef 00  23d+08:21:31.197  READ DMA EXT

  25 00 c8 ff ff ff ef 00  23d+08:21:31.170  READ DMA EXT

  25 00 08 ff ff ff ef 00  23d+08:21:31.150  READ DMA EXT

  25 00 30 ff ff ff ef 00  23d+08:21:31.140  READ DMA EXT

  25 00 a8 ff ff ff ef 00  23d+08:21:26.169  READ DMA EXT

 

SMART Self-test log structure revision number 1

Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error

# 1  Short offline      Aborted by host              90%        76        -

# 2  Short offline      Completed without error      00%        76        -

# 3  Short offline      Aborted by host              90%        75        -

# 4  Short offline      Completed without error      00%        75        -

 

SMART Selective self-test log data structure revision number 1

SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS

    1        0        0  Not_testing

    2        0        0  Not_testing

    3        0        0  Not_testing

    4        0        0  Not_testing

    5        0        0  Not_testing

Selective self-test flags (0x0):

  After scanning selected spans, do NOT read-scan remainder of disk.

If Selective self-test is pending on power-up, resume after 0 minute delay.

 

Link to comment

This disk is bad.  You need to RMA it.

 

There were 1625 reallocated sectors last night, and I'll bet there would be more if you ran another one now.

 

5 Reallocated_Sector_Ct   0x0033   061   061   036    Pre-fail  Always       -       1625

Link to comment

What about my disk 1: 

 

 

TEST for ST31500341AS_9VS0C9EB on 20110306

smartctl 5.39.1 2010-01-28 r3054 [i486-slackware-linux-gnu] (local build)

Copyright © 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

 

=== START OF INFORMATION SECTION ===

Model Family:    Seagate Barracuda 7200.11 family

Device Model:    ST31500341AS

Serial Number:    9VS0C9EB

Firmware Version: CC1H

User Capacity:    1,500,301,910,016 bytes

Device is:        In smartctl database [for details use: -P show]

ATA Version is:  8

ATA Standard is:  ATA-8-ACS revision 4

Local Time is:    Sun Mar  6 04:40:01 2011 Local time zone must be set--see zic m

SMART support is: Available - device has SMART capability.

SMART support is: Enabled

 

=== START OF READ SMART DATA SECTION ===

SMART overall-health self-assessment test result: PASSED

 

General SMART Values:

Offline data collection status:  (0x82) Offline data collection activity

was completed without error.

Auto Offline Data Collection: Enabled.

Self-test execution status:      (  0) The previous self-test routine completed

without error or no self-test has ever

been run.

Total time to complete Offline

data collection: ( 617) seconds.

Offline data collection

capabilities: (0x7b) SMART execute Offline immediate.

Auto Offline data collection on/off support.

Suspend Offline collection upon new

command.

Offline surface scan supported.

Self-test supported.

Conveyance Self-test supported.

Selective Self-test supported.

SMART capabilities:            (0x0003) Saves SMART data before entering

power-saving mode.

Supports SMART auto save timer.

Error logging capability:        (0x01) Error logging supported.

General Purpose Logging supported.

Short self-test routine

recommended polling time: (  1) minutes.

Extended self-test routine

recommended polling time: ( 255) minutes.

Conveyance self-test routine

recommended polling time: (  2) minutes.

SCT capabilities:       (0x103f) SCT Status supported.

SCT Feature Control supported.

SCT Data Table supported.

 

SMART Attributes Data Structure revision number: 10

Vendor Specific SMART Attributes with Thresholds:

ID# ATTRIBUTE_NAME          FLAG    VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE

  1 Raw_Read_Error_Rate    0x000f  117  099  006    Pre-fail  Always      -      135739539

  3 Spin_Up_Time            0x0003  093  092  000    Pre-fail  Always      -      0

  4 Start_Stop_Count        0x0032  099  099  020    Old_age  Always      -      1376

  5 Reallocated_Sector_Ct  0x0033  100  100  036    Pre-fail  Always      -      5

  7 Seek_Error_Rate        0x000f  069  060  030    Pre-fail  Always      -      9109239

  9 Power_On_Hours          0x0032  079  079  000    Old_age  Always      -      18826

10 Spin_Retry_Count        0x0013  100  100  097    Pre-fail  Always      -      0

12 Power_Cycle_Count      0x0032  100  100  020    Old_age  Always      -      77

184 End-to-End_Error        0x0032  100  100  099    Old_age  Always      -      0

187 Reported_Uncorrect      0x0032  100  100  000    Old_age  Always      -      0

188 Command_Timeout        0x0032  100  100  000    Old_age  Always      -      0

189 High_Fly_Writes        0x003a  069  069  000    Old_age  Always      -      31

190 Airflow_Temperature_Cel 0x0022  070  051  045    Old_age  Always      -      30 (Lifetime Min/Max 17/30)

194 Temperature_Celsius    0x0022  030  049  000    Old_age  Always      -      30 (0 6 0 0)

195 Hardware_ECC_Recovered  0x001a  044  029  000    Old_age  Always      -      135739539

197 Current_Pending_Sector  0x0012  100  100  000    Old_age  Always      -      0

198 Offline_Uncorrectable  0x0010  100  100  000    Old_age  Offline      -      0

199 UDMA_CRC_Error_Count    0x003e  200  200  000    Old_age  Always      -      1

240 Head_Flying_Hours      0x0000  100  253  000    Old_age  Offline      -      216904438393513

241 Total_LBAs_Written      0x0000  100  253  000    Old_age  Offline      -      2200385191

242 Total_LBAs_Read        0x0000  100  253  000    Old_age  Offline      -      1811533313

 

SMART Error Log Version: 1

No Errors Logged

 

SMART Self-test log structure revision number 1

Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error

# 1  Short offline      Completed without error      00%        68        -

 

SMART Selective self-test log data structure revision number 1

SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS

    1        0        0  Not_testing

    2        0        0  Not_testing

    3        0        0  Not_testing

    4        0        0  Not_testing

    5        0        0  Not_testing

Selective self-test flags (0x0):

  After scanning selected spans, do NOT read-scan remainder of disk.

If Selective self-test is pending on power-up, resume after 0 minute delay.

 

Link to comment

This drive is not nearly as bad.  5 reallocated sectors.  It is common that once the reallocated sectors start, they keep getting worse and worse.  But, then again, sometimes the reallocated sectors hold steady at a low number and work fine.  I would monitor the reallocated sectors after each parity check.  If they keep going up after every parity check, I would RMA it.  But if it holds steady, 5 reallocated sectors is not a problem.

 

Most of the other stats are hard for humans to monitor.  You really depend on the "VALUE" and "WORST" columns and see how close these values get to the THRESH.  These are all normalized values, and lower numbers are always worst.  If the value gets to the thresh, the SMART report will show that the drive is failing.  Sometimes you can see it getting worse and worse over time. 

 

5 Reallocated_Sector_Ct  0x0033  100  100  036    Pre-fail  Always      -      5

Link to comment

This disk is bad.  You need to RMA it.

 

There were 1625 reallocated sectors last night, and I'll bet there would be more if you ran another one now.

 

5 Reallocated_Sector_Ct   0x0033   061   061   036    Pre-fail  Always       -       1625

 

I just ran it again and its now 1636 so it sounds like you are right I'll need to RMA it back.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...