Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What are the advantages/differences in using either of these in nginx? Are they to be used separately or can they be used together? I noticed nginx added file AIO in its latest stable release and I'm curious as to what this does for performance.


share|improve this question
up vote 1 down vote accepted

AIO on Linux is horribly broken by design. Nginx supports it, but you probably don't want to use it since you can't use the disk cache at the same time. See this nginx mailing list thread for a bit more info, especially the reply, courtesy of nginx author Igor Sysoev. Basically, you will want to run a lot of nginx worker processes instead of using AIO on Linux. I run 10 worker processes per core on a system serving 45 Mbit/s of static files (mostly from cache).

share|improve this answer

AIO is asynchronous input/output. It's for file accessing.
Epoll is a polling mechanism like kqueue and select. It's for event handling.

Basically they're two different things and can be used simultaneously to achieve different things.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.