Onde posso obter as informações mais recentes sobre o AIO no Linux 2.6.x
Pergunta
Recentemente estou aprendendo a escrever um servidor Web de alto desempenho. Há um experimento por RedHat, diz que a Epoll é mais rápida que aio.Alguém diz que porque o AIO no kernel Linux é implementado com Pthread.É difícil encontrar as informações mais recentes para provar isso.Also Eu não sei é o Epoll ainda é melhor que aio agora no linux? Então eu quero saber onde posso obter as informações mais recentes sobre o AIO no Linux 2.6.x.Thx muito!
Solução
Estou pesquisando a mesma área.
Você pode até fazer aio no trabalho do Linux? Eu escrevo 300m com aio_write () e vejo-os como páginas sujas no cache. Isso significa que eles não vão diretamente para o agendador de IO, mas para a VM e depois pdflush / flush. O que significa que oio é tão bom / ruim quanto apenas armazenado em tamponado.
Estou em 2.6.16.46 na máquina de construção e 2.6.27.19 no alvo. Este não é exatamente mais novo kernel / libs do Linux, de modo que pode ser um problema.
Outro aspecto é o agendador IO que você usa. CFQ favores IO síncronos, mas pode ser sintonizado para assíncrono. Também suporta prioridades de IO.
Para começar, eu recomendaria assistir a alguns lugares quando você execute seu IO:
- .
- / proc / meminfo - veja as tendências de páginas sujas
- echo 1> / proc / sys / vm / block_dump e assistir syslog, você verá quem está fazendo a escrita e quando
- sar -dp 1 - Veja se seus dispositivos estão sendo utilizados em 100%
- cd / proc; CAT * / status | Grep State - veja quem está bloqueado no disco
- / sys / block // fila / IOSched - IO Scheduler Tunables