Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Thomas Maier-Komor <thomas@xxxxxxxxxxxxxx>
- Date: Sat, 27 May 2006 17:42:35 +0200
Hynek Schlawack wrote:
Gigabit Ethernet, viele (tendenziell kurze) Nachrichten, single-threaded"tendenziell kurz" ist "relativ lang" in einer anderen Applikation.
Applikation. Worst Case für poll() also. Bei einem ausgelasteten
Webserver sieht das allerdings auch nicht viel besser aus.
Meistens ~100 Bytes.
Wieviel Bytes und wieviele Nachrichten treffen in welcher Zeit ein,
periodisch oder nicht, wie oft werden Verbindungen auf und abgebaut,
usw.
Verbindungen werden gepoolt, die Anzahl der Nachrichten entsprach der
Anzahl, die der Server verkraften konnte, da Stresstest. Mehr als
Datenübertragung wurde an dieser Stelle nicht gemacht (also Daten nur
empfangen und in die Tonne gekloppt).
Wenn ich dich richtig verstehe war die Applikation demnach quasi nur am
poll'en bzw. epoll'en. Dass man in dieser Situation mit poll nur
suboptimale Ergebnisse bekommt ist klar (wobei ich persönlich 20% noch
nicht als dramatisch empfinde). Diese Zahl wird ar schnell kleiner, wenn
die Applikation auch noch eine rechenintensive Verarbeitung der
eingehenden Pakete durchführen muss oder die I/O Last durch die
Paketgröße steigt.
In beiden Fällen verringt sich nämlich der Anteil, den poll bzw. epoll
an der gesamten Rechenzeit einnimmt und damit verringert sich auch der
Vorteil von epoll. Wenn sich beispielsweise dadurch der poll Anteil auf
ein zehntel deines Szenarios reduziert, ist der durch epoll gewonnene
Vorteil demnach nur noch 2%. Also eigentlich bereits vernachlässigbar
klein, da 2% Schwankung durch alle möglichen Randbedingungen ausgelöst
werden können.
Deswegen bleibe ich bei meiner Empfehlung, zunächst das portable API zu
benutzen und erst nach Nachweis eines Bottlenecks eine systemspezifische
Lösung zu verwenden. Dabei denke ich auch immer an die Tatsache, dass
die Implementierung von vielen Schnittstellen in den meisten
Betriebssystemen mit neueren Versionen immer effizienter geworden sind.
.
- Follow-Ups:
- References:
- Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Axel Wanderleit
- Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Hubert Schmid
- Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Thomas Maier-Komor
- Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Hynek Schlawack
- Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Thomas Maier-Komor
- Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Hynek Schlawack
- Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Thomas Maier-Komor
- Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Hynek Schlawack
- Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Thomas Maier-Komor
- Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Hynek Schlawack
- Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Thomas Maier-Komor
- Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- From: Hynek Schlawack
- Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- Prev by Date: Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- Next by Date: Re: Daten von serieller Schnittstell auf Port umleiten
- Previous by thread: Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- Next by thread: Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?
- Index(es):
Relevant Pages
|