Petri -- thanks for the idea.

I ran 2 dds in parallel; they took roughly twice as long in clock time, and had about 1/2 the throughput of the single dd. On my system it doesn't look like how the work is offered to the disk subsystem matters.

# time dd if=/dev/zero of=blort1 bs=1m count=1000 & ; time dd if=/dev/zero of=blort2 bs=1m count=1000&
[1] 69356
[2] 69357
#
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 382.511089 secs (2741296 bytes/sec)
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 385.677897 secs (2718787 bytes/sec)

[2]    Done                          dd if=/dev/zero of=blort2 bs=1m count=1000
0.023u 16.913s 6:25.75 4.3%     20+2813k 3+8772io 2pf+0w
[1]  + Done                          dd if=/dev/zero of=blort1 bs=1m count=1000
0.023u 16.880s 6:22.70 4.4%     20+2810k 1+8765io 0pf+0w

vmstat output during this run:

procs memory page disks faults cpu r b w avm fre flt re pi po fr sr ad0 ad4 ad6 ad8 ad10 in sy cs us sy id 1 1 0 101692 13132 0 0 0 0 5872 1857 0 54 62 69 59 2293 321 3914 2 62 35 3 1 0 101692 15576 0 4 0 0 5840 1947 0 52 54 60 57 2023 308 3379 2 64 35 2 1 0 101692 10072 0 0 0 0 5344 0 0 61 54 55 56 2133 368 3496 0 58 42 2 2 0 101692 11496 0 0 0 0 5984 1860 0 61 65 57 61 2377 429 4118 1 69 30 3 0 0 101692 13124 0 0 0 0 5568 1799 0 57 62 62 65 2440 466 4252 1 64 36 1 2 0 101692 12404 0 0 0 0 6176 1868 0 61 70 67 59 1923 482 3337 1 64 36 0 3 0 101692 15080 0 0 0 0 6576 1805 0 67 71 65 68 2423 468 4300 1 68 31 0 2 0 101692 17448 0 0 0 0 5760 1792 0 56 57 57 60 2463 399 4155 4 65 31

That got me thinking about whether there was a bottleneck to the disk somewhere else. I ran a dd reading 1GB simultaneous from each of the 4 disks. Each disk could be read at about 25MB/sec for a combined read transfer rate of 100MB/sec. A snipped of iostat output:

tty ad0 ad4 ad6 ad8 ad10 cpu tin tout KB/t tps MB/s KB/t tps MB/s KB/t tps MB/s KB/t tps MB/s KB/t tps MB/s us ni sy in id 0 334 0.00 0 0.00 127.36 201 24.97 126.73 201 24.85 127.35 198 24.60 126.71 199 24.60 2 0 11 12 75 0 115 0.00 0 0.00 128.00 191 23.86 126.98 188 23.30 128.00 196 24.48 127.36 199 24.73 2 0 15 9 73 0 115 0.00 0 0.00 127.37 203 25.23 127.08 208 25.79 126.75 205 25.35 127.27 175 21.73 2 0 9 9 80

So I'm definitely not getting the full 60MB/sec performance out of the disk with my current controller and mobo.

I guess the fundamental question is this -- if I have a 4 disk subsystem that supports an aggregate ~100MB/sec transfer raw to the underlying disks, is it reasonable to expect a ~5MB/sec transfer rate for a RAID5 hosted on that subsystem -- a 95% overhead.

Steve


At 01:19 PM 10/28/2006, Petri Helenius wrote:

According to my understanding vinum does not overlap requests to multiple disks when running in raid5 configuration so you're not going to achieve good numbers with just "single stream" tests.

Pete


Steve Peterson wrote:
Eric -- thanks for looking at my issue. Here's a dd reading from one of the disks underlying the array (the others have basically the same performance):

$ time dd if=/dev/ad10 of=/dev/null bs=1m count=1000
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 15.322421 secs (68434095 bytes/sec)
0.008u 0.506s 0:15.33 3.2%      20+2715k 0+0io 0pf+0w

and here's a dd reading from the raw gvinum device /dev/gvinum/vol1:

$ time dd if=/dev/gvinum/vol1 of=/dev/null bs=1m count=1000
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 25.870684 secs (40531437 bytes/sec)
0.006u 0.552s 0:25.88 2.1%      23+3145k 0+0io 0pf+0w

Is there a way to nondestructively write to the raw disk or gvinum device?

For comparison, here's a read against the raw PATA device on the machine:

$ time dd if=/dev/ad0 of=/dev/null bs=1m count=1000
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 26.096070 secs (40181376 bytes/sec)
0.013u 0.538s 0:26.10 2.0%      24+3322k 0+0io 0pf+0w

Steve


At 11:14 PM 10/27/2006, Eric Anderson wrote:
On 10/27/06 18:03, Steve Peterson wrote:
I recently set up a media server for home use and decided to try the gvinum raid5 support to learn about it and see how it performs. It seems slower than I'd expect -- a little under 6MB/second, with about 50 IOs/drive/second -- and I'm trying to understand why. Any assistance/pointers would be appreciated. The disk system consists of 4 Seagate NL35 SATA ST3250623NS drives connected to a Promise TX4300 (PDC40719) controller, organized as a RAID5 volume via gvinum using this configuration:
drive drive01 device /dev/ad10
drive drive02 device /dev/ad6
drive drive03 device /dev/ad4
drive drive04 device /dev/ad8
volume vol1
   plex org raid5 256k
     sd length 200001m drive drive01
     sd length 200001m drive drive02
     sd length 200001m drive drive03
     sd length 200001m drive drive04
dd reports the following performance on a 1G file write to the RAID5 hosted volume:
$ time dd if=/dev/zero of=big.file bs=1m count=1000
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 179.717742 secs (5834571 bytes/sec)
       179.76 real         0.02 user        16.60 sys
By comparison, creating the same file on the system disk (an old ATA ST380021A connected via a SIS 730 on the motherboard):
time dd if=/dev/zero of=big.file bs=1m count=1000
1000+0 records in
1000+0 records out
1048576000 bytes transferred in 28.264056 secs (37099275 bytes/sec)
        28.32 real         0.01 user        19.13 sys
and vmstat reports about 280-300 IOs/second to that drive.
The CPU is pretty weak -- an Athlon 750. Is that the source of my problem? If you look at the vmstat output below the machine is busy but not pegged.


Try the dd to the raw gvinum device instead of through a filesystem, and also to the individual disks. That will at least tell us where to look.


Eric



--
------------------------------------------------------------------------
Eric Anderson        Sr. Systems Administrator        Centaur Technology
Anything that works is better than anything that doesn't.
------------------------------------------------------------------------
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "[EMAIL PROTECTED]"



_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to