Domanda

Recentemente sto imparando come scrivere un server Web ad alte prestazioni. C'è un esperimento di RedHat dice che EPOLL è più veloce di AIO.Qualcuno dice che perché il kernel AIO in Linux è implementato con il pthread.È difficile per me trovare le ultime informazioni per dimostrare questo. Inoltre, non so è EPOLL ancora meglio di AIO ora su Linux? Quindi voglio sapere dove posso ottenere le ultime informazioni su AIO su Linux 2.6.x.THX molto!

È stato utile?

Soluzione

Sto cercando la stessa area.

Puoi persino rendere il lavoro AIO su Linux? Scrivo 300m con AIO_WRITE () e vedili come pagine sporche nella cache. Ciò significa che non vanno direttamente allo scheduler IO, ma alla VM e successivamente PDflush / Flush. Il che significa che AIO è buono / cattivo come semplicemente tamponato Io.

Sono il 2.6.16.46 sulla macchina da costruzione e 2.6.27.19 sul bersaglio. Questo non è esattamente il più recente kernel / libs di Linux, in modo che possa essere un problema.

Un altro aspetto è lo scheduler IO che usi. CFQ favorisce IO sincrono, ma può essere sintonizzato per Async. Supporta anche priorità IO.

Per gli antipasti, consiglierei di guardare alcuni posti quando esegui il tuo IO:

    .
  1. / proc /minfo - vedi le tendenze delle pagine sporche
  2. echo 1> / proc / sys / vm / block_dump e guarda syslog, vedrai chi sta facendo la scrittura e quando
  3. SAR -DP 1 - Vedere se i tuoi dispositivi vengono utilizzati al 100%
  4. cd / proc; gatto * / stato | GREP Stato - Vedi chi è bloccato su disco
  5. / sys / block // coda / iosched - IO Scheduler Tuntables
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top