Imagine o envio de centenas de imagens em uma página por meio de uma conexão http persistente. Um cliente conectado ao trabalhador, mas faz muitos I / Os. Seria bom não bloquear essas leituras para que o trabalhador não tenha que esperar.
O artigo do IBM developerWorks sobre AIO possui um bom esboço de async vs. blocking.
Nesse caso, o nginx usa pelo menos duas interfaces para E / S, o epoll () para aceitar a conexão e o AIO para coisas como servir arquivos. Existem diferenças de implementação para escutar muitos descritores de arquivos versus fazer fila de E / S para alguns outros descritores de arquivos.
Lendo ngx_epoll_module.c, worker_aio_requests é alimentado para a chamada do sistema io_setup (). Isso resulta na configuração anunciada de muitas operações assíncronas por trabalhador.
Normalmente, um usa libaio para isso, embora nginx pareça ignorar isso e usar a chamada do sistema. Essa diferença na interface e algumas outras peculiaridades resultaram em várias diretivas de configuração expostas, para que você possa ajustar as conexões de trabalho e as E / Ss simultâneas.