[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SAGE] IDE hard drive performance
I have had an ongoing disagreement with one of my vendors about the
proper way to arrange a pair of IDE hard drives in a server for optimal
performance. As a result, I wound up running a series of I/O tests
against identical hardware/software to get some solid data, and thought
everyone would like to see the results... (see attachment for the
numbers)
- Notes: I used bonnie++ 1.03 running on Red Hat Linux Advanced Server
2.1. In all cases, the hard drives were mirrored with software RAID1.
- Results: You can obtain noticeably better performance (~40%) by having
each drive on a separate IDE channel instead of having them share the
same channel. Also, having a hard drive share an IDE channel with a
CD-ROM drive that is not in use seems to have little, if any, effect on
performance.
- Caveats: Since I went with the default hard drive settings, it is very
likely that I am missing out on some performance benefits. Additionally,
the CD-ROM drive may in fact be imposing a limit on performance, but the
hard drives are performing below that limit with their default
configuration, so it doesn't show up in the tests.
- Discussion: Has anyone else performed tests of this nature on
current-gen equipment? If so, how did you test and what were your
results? Also, has anyone played around with IDE hard drive settings in
such a way that resulted in both good performance *and* stability?
--
Jeremy Frank
IDE Hard Drive Performance Analysis
===================================
Notes:
======
* Hardware:
2x 2.4GHz Xeon CPUs (Hyperthreading enabled)
1.5GB total RAM (2x 512MB, 2x 256MB)
2x 80GB 7200RPM IBM Deskstar Hard Drives
* In all tests, the pair of hard drives were mirrored using software RAID1
* OS: Red Hat Advanced Server 2.1AS (kernel 2.4.9-e.3smp)
* Software used: Bonnie++ 1.03 (http://www.coker.com.au/bonnie++/)
* Command line used for all tests: # ./bonnie++ -d /data1/scratch -s 3000 -r 1500 -u test
* All drives were left at their default settings:
# hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
I/O support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 9730/255/63, sectors = 156312576, start = 0
Configuration A:
IDE Channel 1 - Master: HD, Slave: HD
IDE Channel 2 - Master: CDROM, Slave: None
============================================
# Try 1
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
test1.dmotor 3000M 6618 27 9314 6 3699 1 20058 76 28822 7 179.9 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 2339 91 +++++ +++ +++++ +++ 2398 93 +++++ +++ 5394 85
test1.dmotorworks.com,3000M,6618,27,9314,6,3699,1,20058,76,28822,7,179.9,0,16,2339,91,+++++,+++,+++++,+++,2398,93,+++++,+++,5394,85
# Try 2
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
test1.dmotor 3000M 6561 27 7444 4 3862 1 21012 76 28856 8 190.6 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 2330 93 +++++ +++ +++++ +++ 2328 93 +++++ +++ 5063 86
test1.dmotorworks.com,3000M,6561,27,7444,4,3862,1,21012,76,28856,8,190.6,0,16,2330,93,+++++,+++,+++++,+++,2328,93,+++++,+++,5063,86
Configuration B:
IDE Channel 1 - Master: HD, Slave: None
IDE Channel 2 - Master: HD, Slave: None
=========================================
# Try 1
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
test2.dmotorw 3000M 11086 47 12100 10 6538 3 21142 78 30025 9 229.8 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 2300 96 +++++ +++ +++++ +++ 2374 94 +++++ +++ 6446 99
test2.dmotorworks.com,3000M,11086,47,12100,10,6538,3,21142,78,30025,9,229.8,0,16,2300,96,+++++,+++,+++++,+++,2374,94,+++++,+++,6446,99
# Try 2
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
test2.dmotorw 3000M 11126 48 14391 10 5925 3 21511 79 30100 9 332.9 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 2383 95 +++++ +++ +++++ +++ 2461 96 +++++ +++ 5464 90
test2.dmotorworks.com,3000M,11126,48,14391,10,5925,3,21511,79,30100,9,332.9,1,16,2383,95,+++++,+++,+++++,+++,2461,96,+++++,+++,5464,90
Configuration C:
IDE Channel 1 - Master: HD, Slave: None
IDE Channel 2 - Master: HD, Slave: CDROM
==========================================
# Try 1
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
test3.dmotorw 3000M 11217 47 11639 9 6606 3 22020 81 29939 9 348.4 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 2429 95 +++++ +++ +++++ +++ 2428 96 +++++ +++ 5654 92
test3.dmotorworks.com,3000M,11217,47,11639,9,6606,3,22020,81,29939,9,348.4,1,16,2429,95,+++++,+++,+++++,+++,2428,96,+++++,+++,5654,92
# Try 2 (Inserted and mounted a disc beforehand just to make sure that the OS knew that the CDROM was there)
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
test3.dmotorw 3000M 10924 55 11554 13 6603 3 22328 82 29922 8 336.0 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 2379 95 +++++ +++ +++++ +++ 2367 96 +++++ +++ 5275 91
test3.dmotorworks.com,3000M,10924,55,11554,13,6603,3,22328,82,29922,8,336.0,1,16,2379,95,+++++,+++,+++++,+++,2367,96,+++++,+++,5275,91