On 06/09/2011 02:24 AM, Emmanuel Noobadmin wrote: > I'm trying to resolve an I/O problem on a CentOS 5.6 server. The > process basically scans through Maildirs, checking for space usage and > quota. Because there are hundred odd user folders and several 10s of > thousands of small files, this sends the I/O wait % way high. The > server hits a very high load level and stops responding to other > requests until the crawl is done. > > I am wondering if I add another disk and symlink the sub-directories > to that, would that free up the server to respond to other requests > despite the wait on that disk? > > Alternatively, if I mdraid mirror the existing disk, would md be smart > enough to read using the other disk while the first's tied up with the > first process? You should look at running your process using 'ionice -c3 program'. That way it won't starve everything else for I/O cycles. Also, you may want to experiment with using the 'deadline' elevator instead of the default 'cfq' (see http://www.redhat.com/magazine/008jun05/features/schedulers/ and http://www.wlug.org.nz/LinuxIoScheduler). Neither of those would require you to change your hardware out. Also, setting 'noatime' for the mount options for partition holding the files will reduce the number of required I/Os quite a lot. But yes, in general, distributing your load across more disks should improve your I/O profile. -- Benjamin Franz