[CentOS] IO Schedulers

Tue Jan 12 23:00:37 UTC 2010
Tim Nelson <tnelson at rockbochs.com>

Greetings all-

I'm on a quest to do some serious tuning to some of my production systems. All are on CentOS 5.x ranging from 5.0 to 5.4. I've been reading up on the various IO schedulers available in the kernel and I'm hoping some of you can lend some insightful suggestions. I typically have three classes of system in production:

1. Storage/DB - Backend nodes for the application servers, MySQL, NFS storage serving to frontend nodes (deadline?)
2. Web/SSL - Frontend nodes serving up web application (PHP/MYSQL), heavy SSL {en/de}cryption with both HTTPS/Apache as well as branch locations connecting via OpenVPN (cfq?)
3. Telephony/Communications - VoIP, usually Asterisk (full signaling + media services), massive context switching, very timing sensitive (Meetme conferencing, IAX2 trunk mode, etc) (deadline?)

In my reading, I've found most people recommend deadline for DB intensive systems. CFQ seems to be recommended for most other uses. Noop and as seem to be irrelevant. Is this correct or am I way off base?

I'm not currently under any enormous load on any of these systems, but I'm planning for growth and would like to see how different schedulers can make a difference.

I welcome your suggestions and experiences. :-)

--Tim