I got fed up last week because of Linux’s I/O scheduler. Or so I thought. When I started a background I/O task (in my case, a large file being served up by samba), the responsiveness of the desktop would go to crap.
Googling a bit led to a bunch of mention about the vm.swappiness sysctl variable, which controls the kernel’s tendency to page out applications in favor of growing the i/o cache. The default value is 60, and the range is from 0 to 100.
Anyways, I set this value to 5, and I’m seeing pretty noticeable improvement. Googling some more led to this page, which is an old discussion where Andrew Morton is arguing for the default value of 60, which potentially trade’s off desktop responsiveness for i/o performance (though no hard numbers are provided). I’m sure very few people if any have actually done any real testing with this, but my personal experience seems to support the notion that setting a low value when you have lots of RAM can improve application responsiveness.
Unforutnately, it doesn’t seem to help as much with a VM running outlook and constantly chugging on the disk.