[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Disk performance problem



Veli Cakmak put forth on 2/25/2010 3:48 AM:

> The PC with SATA disk gives below rate (value) 7200 rpm
> 
> 1000000+0 records in
> 
> 1000000+0 records out
> 
> 1024000000 bytes (1.0 GB) copied, 5.55338 s, 184 MB/s (this is proxy server
> with 100 users)(sw raid1)

I dare say 184MB/s write throughput doesn't seem possible with software
mirroring of two 7.2K rpm SATA disks.  Mirrored writes are going to be
slightly slower than single disk writes.  The fastest sequential write 7.2K
rpm SATA disks are the 2TB models from Seagate and they max out at around
130MB/s with an average write speed of around 105MB/s.  If that 184MB/s
figure for a pair of mirrored disks is accurate, I want to know what disks
you have so I can order one!

Something else to keep in mind is that the filesystem you're writing the
output file to is going to affect write throughput.  Filesystems reside atop
partitions, and the placement/location on the disk of the partition you're
writing to also will make a difference in sequential write speed.  The
closer the partition is to the outside of the disk platter(s) the faster the
read/write throughput will be.

Are you testing writes to the same filesystem type on all those machines or
to different FS types?  I happen to have both EXT2 and XFS filesystems on
one of my server disks.  Here are sequential write results from my Western
Digital WD5000AAKS-00V1A0 single platter 500GB 7.2K rpm SATAII disk using
kernel 2.6.31.1 (self rolled, all drivers in kernel), sata_sil, NCQ
disabled, elevator=deadline:

EXT2
/$ dd conv=fsync if=/dev/zero of=bigfile.txt bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 16.6619 s, 61.5 MB/s

XFS
/$ dd conv=fsync if=/dev/zero of=bigfile.txt bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 19.6523 s, 52.1 MB/s

As you can see, XFS, being a journaled FS, has considerably slower
sequential write throughput compared to EXT2, a non journaled FS.  However,
note the 1024 block size.  Let's see what happens when we change the block
size to 4096 to match the XFS block size.

XFS 4096 block size
/$ dd conv=fsync if=/dev/zero of=bigfile.txt bs=4096 count=100000
100000+0 records in
100000+0 records out
409600000 bytes (410 MB) copied, 5.8053 s, 70.6 MB/s

Matching the XFS block size increased write throughput by almost 20MB/s.
Not bad eh? ;)

Remember to always compare apples to apples and not apples to oranges, or
your results will be confusing and have little meaning.  When you run each
test, make sure you use a block size that is optimally matched to the
underlying filesystem you're writing your test output files to.

Hope this information helps you out in one way or another.

Cheers.

-- 
Stan


Reply to: