05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

5.6 Nebenläufige Server <strong>mit</strong> Preforking 297<br />

Tabelle 5.5. Laufzeitmessungen für den Preforking-Server<br />

Laufzeit Client CPU-Zeit Server<br />

30 Anfragen, sequentiell 10,81 s 920 Clockticks<br />

30 Anfragen, nebenläufig 5,53 s 983 Clockticks<br />

Auch aus der Sicht des Clients zahlt sich der ressourcenfre<strong>und</strong>lichere Umgang<br />

des Servers aus. Mit einer Gesamtlaufzeit von 5,53 Sek<strong>und</strong>en werden die 30 nebenläufigen<br />

Client-Anfragen nur minimal langsamer als vom Prethreading-<br />

Server beantwortet. Der Preforking-Server schöpft die Ressourcen des Server-<br />

Systems da<strong>mit</strong> fast ebenso gut aus, wie sein threadbasiertes Pendant.<br />

Abb. 5.11. Wartezeiten nebenläufiger Anfragen bei Preforking-Servern<br />

Bei den Reaktionszeiten des Servers setzt sich dieser Trend fort. Die Linitierung<br />

der gleichzeitig aktiven Prozesse auf NUM_PROCS Stück (in unserem<br />

Beispiel also acht Kindprozesse, siehe server.h aus Beispiel 5.1) geht zwar<br />

zulasten der Fairness, das Antwortsverhalten des Servers ist aber im Vergleich<br />

immer noch sehr flüssig. Abbildung 5.11 zeigt die sich stufenweise erhöhenden<br />

Antwortszeiten des Servers, dieses Verhalten ist bereits vom Prethreading-<br />

Server her bekannt. Die Reaktionszeiten liegen dabei durchwegs knapp über<br />

den gemessenen Werten für das threadbasierte Server-Äquivalent.<br />

Besonderheiten <strong>und</strong> Einsatzgebiete<br />

Genau wie die anderen nebenläufigen Server-Varianten kann der Preforking-<br />

Server nicht durch eine einzige blockierende Anfrage außer Gefecht gesetzt<br />

werden, auch lange Bearbeitungszeiten für einzelne Clients führen in der Regel<br />

nicht zum Ausschluß nachfolgender Client-Anfragen. Durch das Vorzeitige<br />

abspalten neuer Bearbeitungsprozesse entfällt das Starten eines neuen Prozeß’

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!