Girls & guys, many thanks for the responses so far.
Just for reference, my RAID 5 array is attached to a Dell SAS 6/iR SAS HBA, created by MD RAID, and formatted for ext4. The RAID 1 array is attached to the onboard Intel H55 SATA controller and is also an MD RAID array, and is also formatted for ext4.
It may well be a filesystem issue. I'm currently copying a 8GB ISO to a USB flash drive, formatted with NTFS. The kio_file
process is using 6% CPU time, but the mount.ntfs-3g
process (which I assume is an in-kernel process, but maybe not) is taking up 25-30% CPU time. Using cp
to perform the file copy results is almost exactly the same numbers, with cp
using around 6-7% and mount.ntfs-3g
using between 25% and 30%.
OK, I reformatted the USB stick as ext2, and ran the test again. kio_file
took ~2% CPU time!
Using ext3 as a filesystem, kio_file
spiked at 8%, then settled at around 4% average.
I never realised that the filesystems themselves were so CPU-bound. Going by evermooingcow'
s numbers, it would appear that JFS is one of the best for a high load fileserver, or that ext4 is one of the worst.
I just don't understand what a filesystem could be doing to put so much load on the CPU.
Could it be that Canonical have done a poor job of building the Ubuntu kernel? Or is it something inherent in ext4? Either way, it looks like the days of fileservers not being CPU-bound are becoming a thing of the past...