Pregunta

Recientemente, estoy aprendiendo a escribir un servidor web de alto rendimiento. Hay un experimento de Redhat, dice que Epoll es más rápido que AIO.Alguien dice que porque Aio en Linux Kernel se implementa con Pthread.Me resulta difícil encontrar información más reciente para demostrar esto. También no sé. ¿Epoll aún mejor que AIO ahora en Linux? Así que quiero saber dónde puedo obtener la información más nueva sobre AIO en Linux 2.6.x.Gracias mucho!

¿Fue útil?

Solución

Estoy investigando la misma área.

¿Puede incluso hacer que Aio en Linux funcione? Escribo 300m con AIO_WRITE () y verlos como páginas sucias en el caché. Eso significa que no van directamente al programador de IO, sino a la VM y luego PDFLUSH / FLUSH. Lo que significa que AIO es tan bueno / malo como solo en buffered io.

Estoy en 2.6.16.46 en la máquina de construcción y 2.6.27.19 en el objetivo. Esto no es exactamente el kernel / libs de Linux, por lo que puede ser un problema.

Otro aspecto es el programador de IO que usa. CFQ favorece la IO síncrono, pero puede estar sintonizado para Async. También apoya las prioridades de IO.

Para empezar, recomendaría ver algunos lugares cuando ejecutas tu IO:

  1. / proc / meminfo - ver tendencias de páginas sucias
  2. echo 1> / proc / sys / vm / block_dump y mira syslog, verás quién está haciendo la escritura y cuándo
  3. sar -dp 1: vea si sus dispositivos se utilizan al 100%
  4. cd / proc; gato * / estado | GREP ESTADO - Mira quién está bloqueado en el disco
  5. / sys / block // cola / iosched - Tunables de programador IO
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top