Re: RAID-1 performance under 2.4 and 2.6

From: Bill Davidsen
Date: Thu Mar 27 2008 - 18:01:44 EST


Emmanuel Florac wrote:
Le Wed, 26 Mar 2008 12:15:57 +0100
"Bart Van Assche" <bart.vanassche@xxxxxxxxx> écrivait:

You are welcome to post the numbers you obtained with dd for direct
I/O on a RAID-1 setup for 2.4 versus 2.6 kernel.

Here we go (tested on a slightly slower hardware : Athlon64 3000+,
nVidia chipset) . Actually, direct IO result is identical. However, the
significant number for the end user in this case is the NFS thruput.



2.4 kernel (2.4.32), async write
--------------------------------
root@0[root]# ./dd if=/dev/zero of=/mnt/raid/testdd01 bs=1M count=1024 1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 13.407 seconds, 80.1 MB/s

2.4 kernel (2.4.32), async write thru NFS mount
--------------------------------
emmanuel[/mnt/temp]$ dd if=/dev/zero of=./testdd01 bs=1M count=1024 1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 bytes (1,1 GB) copied, 15,5176 s, 69,2 MB/s

2.4 kernel (2.4.32), async read
--------------------------------
root@0[root]# ./dd if=/mnt/raid/testdd01 of=/dev/null bs=1M
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 15.752 seconds, 68.2 MB/s

2.4 kernel (2.4.32), sync write
--------------------------------
root@0[root]# ./dd if=/dev/zero of=/mnt/raid/testdd01 bs=1M count=1024 \
oflag=direct,dsync 1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 21.7874 seconds, 49.3 MB/s

2.6 kernel (2.6.22.18), async write
--------------------------------
root@0[root]# ./dd if=/dev/zero of=/mnt/raid/testdd02 bs=1M
count=1024 1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 17.1347 seconds, 62.7 MB/s

2.6 kernel (2.6.22.18), async write thru NFS mount
--------------------------------
emmanuel[/mnt/temp]$ dd if=/dev/zero of=./testdd02 bs=1M count=1024
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 bytes (1,1 GB) copied, 21,3618 s, 50,3 MB/s

2.6 kernel (2.6.22.18), async read
--------------------------------
root@0[root]# ./dd if=/mnt/raid/testdd02 of=/dev/null bs=1M
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 15.7599 seconds, 68.1 MB/s

2.6 kernel (2.6.22.18), sync write
--------------------------------
root@0[root]# ./dd if=/dev/zero of=/mnt/raid/testdd02 bs=1M count=1024 \
oflag=direct,dsync 1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 21.7011 seconds, 49.5 MB/s

The time you usually want to measure is time to get all data to another drive. In that case fdatasync allows typical buffering while waiting at the end of the copy until all bytes are on the destination platter. That doesn't change the speed, just makes the numbers more stable. That's the one I use, since most simple applications just use write() to send data. This may or may not provide numbers more representative of your application.

--
Bill Davidsen <davidsen@xxxxxxx>
"We have more to fear from the bungling of the incompetent than from
the machinations of the wicked." - from Slashdot

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/