It is slow because you use urandom.
To demonstrate that I make your test on a filesystem that is mounted to RAM, so that disk speed is not a limiting factor:
Code:
tobi@demon /ram :) % dd if=/dev/urandom of=test.img count=1024 bs=1M
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 65.155 s, 16.5 MB/s
Now I do the same with the faster /dev/zero:
Code:
tobi@demon /ram :) % dd if=/dev/zero of=test.img count=1024 bs=1M
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.627626 s, 1.7 GB/s
Now the same test on a RAID 0 (2x 500GB, software RAID):
Code:
tobi@demon /ram :) % dd if=/dev/urandom of=/data/test.img count=1024 bs=1M
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 65.8429 s, 16.3 MB/s
tobi@demon /ram :) %
tobi@demon /ram :) % dd if=/dev/zero of=/data/test.img count=1024 bs=1M
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 6.51105 s, 165 MB/s
As you can see, the limiting factor is not the speed of your array, but the limited speed of the /dev/urandom device. Try it again with /dev/zero.