[CentOS] Very slow disk performance on CentOS 4.5

Alfred von Campe
2007-08-31T15:44:35Z

I recently moved my CentOS 4.5 disk from a Lenovo ThinkCentre M52
(3.2 GHz Pentium 4) to a Lenovo ThinkCentre M55 (3.4 GHz Core 2
Duo).  I had to install the SMP kernel, but other than that
everything just worked.  I did have an issue with accidentally
initializing my /boot partition, but that was my own fault.

But the system was not feeling right.  Some things just seemed to be
slower, but I couldn't put my finger on it.  Today, I noticed that
disk I/O was very slow to one of the disks (the boot drive, /dev/
hda).  It took over 18 minutes to unzip a set of files that used to
take just under 2 minutes on the old system.  Sure enough, if I
copied the files to the second drive (/dev/sda), I was able to unzip
them in under 2 minutes again.

When I accidentally clobbered the /boot partition, I learned that
there were two IDE controllers on this motherboard, which explained
why one SATA drive was named /dev/hda and the other SATA drive /dev/
sda.   But I find it hard to believe that there would be such a
performance difference between the two controllers/drivers/disks.
And I know the slow disk worked just fine before I moved it to the
new system.

Any ideas what could cause a drive to be so slow?  Could it be that
DMA is disabled on the drive (see the output of hdparm below)?  Also,
why does hdparm work for one disk but not the other?

Thanks for any pointers,
Alfred


# lspci
00:00.0 Host bridge: Intel Corporation 82Q963/Q965 Memory Controller
Hub (rev 02)
00:01.0 PCI bridge: Intel Corporation 82Q963/Q965 PCI Express Root
Port (rev 02)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB
UHCI Contoller #4 (rev 02)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB
UHCI Controller #5 (rev 02)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2
EHCI Controller #2 (rev 02)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio
Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI
Express Port 1 (rev 02)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI
Express Port 5 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB
UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB
UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB
UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2
EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev f2)
00:1f.0 ISA bridge: Intel Corporation 82801HB/HR (ICH8/R) LPC
Interface Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801H (ICH8 Family) 4 port
SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus
Controller (rev 02)
00:1f.5 IDE interface: Intel Corporation 82801H (ICH8 Family) 2 port
SATA IDE Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce
7300 GT] (rev a1)
03:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5755
Gigabit Ethernet PCI Express (rev 02)
0a:0a.0 Serial controller: NetMos Technology PCI 9835 Multi-I/O
Controller (rev 01)


00:1f.2 IDE interface: Intel Corporation 82801H (ICH8 Family) 4 port
SATA IDE Controller (rev 02) (prog-if 8a [Master SecP PriP])
         Subsystem: Lenovo: Unknown device 1011
         Flags: bus master, 66Mhz, medium devsel, latency 0, IRQ 177
         I/O ports at <unassigned>
         I/O ports at <unassigned>
         I/O ports at <unassigned>
         I/O ports at <unassigned>
         I/O ports at 30d0 [size=16]
         I/O ports at 30c0 [size=16]
         Capabilities: [70] Power Management version 3

00:1f.5 IDE interface: Intel Corporation 82801H (ICH8 Family) 2 port
SATA IDE Controller (rev 02) (prog-if 85 [Master SecO PriO])
         Subsystem: Lenovo: Unknown device 1011
         Flags: bus master, 66Mhz, medium devsel, latency 0, IRQ 185
         I/O ports at 3428 [size=8]
         I/O ports at 341c [size=4]
         I/O ports at 3420 [size=8]
         I/O ports at 3418 [size=4]
         I/O ports at 30f0 [size=16]
         I/O ports at 30e0 [size=16]
         Capabilities: [70] Power Management version 3

# hdparm /dev/hda
/dev/hda:
multcount    = 16 (on)
IO_support   =  0 (default 16-bit)
unmaskirq    =  0 (off)
using_dma    =  0 (off)
keepsettings =  0 (off)
readonly     =  0 (off)
readahead    = 256 (on)
geometry     = 24792/255/63, sectors = 203928109056, start = 0

# hdparm /dev/sda
/dev/sda:
HDIO_GET_MULTCOUNT failed: Inappropriate ioctl for device
IO_support   =  0 (default 16-bit)
readonly     =  0 (off)
readahead    = 256 (on)
geometry     = 9730/255/63, sectors = 80032038912, start = 0