Frage

Ich lerne kürzlich, wie man einen Hochleistungs-Webserver schreibt. Es ist ein Experiment von Redhat, sagt Redhat, dass Epoll schneller ist als AIO.Jemand sagt, dass AIO in Linux-Kernel mit Pthread umgesetzt wird.Es ist schwierig für mich, die neuesten Informationen zu finden, um dies zu beweisen.Thx viel!

War es hilfreich?

Lösung

Ich erforsche den gleichen Bereich.

Können Sie sogar AIO auf Linux-Arbeit herstellen? Ich schreibe 300 m mit AIO_WRITE () und sehe sie als schmutzige Seiten im Cache an. Das heißt, sie gehen nicht direkt zum IO-Scheduler, sondern auf den VM und später pdflush / bündig. Was bedeutet, dass AIO so gut / schlecht ist, wie nur ich bin.

Ich bin auf 2.6.16.46 auf dem Baugerät und 2.6.27.19 auf dem Ziel. Dies ist nicht genau neuester Linux-Kernel / Libs, also kann das Problem sein.

Ein anderer Aspekt ist der IO-Scheduler, den Sie verwenden. CFQ favors Synchron IO, kann aber auf Async abgestimmt sein. Es unterstützt auch IO-Prioritäten.

Für die Starter würde ich empfehlen, ein paar Orte anzusehen, an denen Sie Ihr IO ausführen:

    .
  1. / proc / meminfo - siehe Dirty Pages Trends
  2. echo 1> / proc / sys / vm / block_dump und watch syslog, Sie werden sehen, wer das Schreiben tut, und wann
  3. sar -dp 1 - Sehen Sie, ob Ihre Geräte mit 100% verwendet werden
  4. cd / proc; Katze * / Status | GREP-Status - Sehen Sie, wer auf der Festplatte gesperrt ist
  5. / SYS / BLOCK // Warteschlange / iosched - IO Scheduler-Tunables
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top