On my new 24 disk array I get 900 MB/s of raw read or write using dd to all the disks.
When I set the disks up as a 24 disk RAID6 I get 400 MB/s write and 600 MB/s read. It seems to be due to checksuming, as I have a single process (md0_raid6) taking up 100% of one CPU.
# uname -a
Linux server 3.2.0-0.bpo.1-amd64 #1 SMP Sat Feb 11 08:41:32 UTC 2012 x86_64 GNU/Linux
I seem to remember back in kernel 2.6.x the kernel printed that it could do 8000 MB/s of RAID6 checksumming. It therefore surprises me that md0_raid6 is even close to 100%. I would have expected it to be around 10%.
Edit:
Found this in /var/log/messages:
Mar 13 16:02:42 server kernel: [ 34.712039] raid6: int64x1 2125 MB/s
Mar 13 16:02:42 server kernel: [ 34.780043] raid6: int64x2 2149 MB/s
Mar 13 16:02:42 server kernel: [ 34.848049] raid6: int64x4 1832 MB/s
Mar 13 16:02:42 server kernel: [ 34.916047] raid6: int64x8 1569 MB/s
Mar 13 16:02:42 server kernel: [ 34.984041] raid6: sse2x1 3186 MB/s
Mar 13 16:02:42 server kernel: [ 35.052031] raid6: sse2x2 5272 MB/s
Mar 13 16:02:42 server kernel: [ 35.120032] raid6: sse2x4 6196 MB/s
Mar 13 16:02:42 server kernel: [ 35.120035] raid6: using algorithm sse2x4 (6196 MB/s)
Mar 13 16:02:42 server kernel: [ 35.144209] md: raid6 personality registered for level 6
Mar 13 16:02:42 server kernel: [ 35.144212] md: raid5 personality registered for level 5
Mar 13 16:02:42 server kernel: [ 35.144214] md: raid4 personality registered for level 4
I naïvely believed this meant that I could checksum 6196 MBytes/s.
Why does it take 100% and not around 10%?
dd), and 900 MBytes/s should again use around 10% CPU. – Ole Tange Mar 13 '12 at 19:34