I've noticed that, if you create a large empty file, e.g.
Code: Select all
dd if=/dev/zero of=dumpfile bs=4K count=1M
So of course I looked at CPU use while doing this... And guess what, it produces regular spikes of ~100% CPU use, coinciding with the freezes. The cfq scheduler by contrast never produces CPU use higher than about 80%.
You can probably see the issue here. noop is the simplest scheduler, designed to incur the lowest CPU use, at the cost of potentially higher latency and lower throughput. I'm not a kernel hacker, but I'm pretty sure that per its design it should never generate CPU spikes like that. Yet this happens on the 2.6.37.6 kernel, and every other kernel I've tried.
Is this a bug, or am I missing something essential?