I found out, that writing to a SATA harddisk costs around 20% of thecomputers cpu time. I write blocks of 1MB size to a file. Write performanceis around 51MB/s what I think is really good. My computer has an Intel ICH6chipset and a 3.2GHz Pentium 4 processor.If I understand the design of this chipset correctly, then I would haveexpected, that the CPU needs to do only few work, instead I found out, thatwriting to disk seems to be really hard work for the CPU.

Can I do anything to optimize writing from memory to disk?

My final aim is to get around 140MB/s of data from 3 different GigabitEthernet cards and store it on 3 harddisk drives that perform 50MB/s.From the SATA bus side there should be no problem. Each of the 4 SATAs onthis ICH6 chipset are capable of 150MB/s.

So what makes my CPU that slow? Is it a hardware problem or a problem ofSATA driver of my operating system?

time dd if=/dev/zero of=test.zero bs=1M count=1000results in

real 0m52.561suser 0m0.003ssys 0m7.407s

and strace dd... gives among other information6.84s 1004calls syscall: write

So I spend 45s of 52s within the kernel. Why so long?

By the way: I'm working with SuSE Linux 9.2 on a Dell Desktop PC, 1GB RAM