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!

Foi útil?

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:

    .
  1. / proc / meminfo - veja as tendências de páginas sujas
  2. echo 1> / proc / sys / vm / block_dump e assistir syslog, você verá quem está fazendo a escrita e quando
  3. sar -dp 1 - Veja se seus dispositivos estão sendo utilizados em 100%
  4. cd / proc; CAT * / status | Grep State - veja quem está bloqueado no disco
  5. / sys / block // fila / IOSched - IO Scheduler Tunables
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top