[CentOS] Possible to use multiple disk to bypass I/O wait?

Thu Jun 9 10:38:05 UTC 2011
Benjamin Franz <jfranz at freerun.com>

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