Re: Server Programmierung: performance Steigerung durch Verteilung von Verbindungsanfragen auf mehrere ports?



Hynek Schlawack wrote:

Gigabit Ethernet, viele (tendenziell kurze) Nachrichten, single-threaded
Applikation. Worst Case für poll() also. Bei einem ausgelasteten
Webserver sieht das allerdings auch nicht viel besser aus.
"tendenziell kurz" ist "relativ lang" in einer anderen Applikation.

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.
.



Relevant Pages

  • Re: HILFE zum Thema Windows-Focus etc.
    ... Dann hast Du die Chance zu sehen, das Deine Frage nicht gut ... Wenn Du das getan hättest wärst Du auf die folgenden Nachrichten ... nur über die Applikation bewegt wird. ... denn in diesem Moment transferiert Windows den Eingabefocus ...
    (microsoft.public.de.vc)
  • Re: Abfrage =?UTF-8?B?/GJlcg==?= mehrere Server ( IPs)
    ... Du kannst Diene Applikation natürlich Verbindungen zu zwei Rechnern ... herstellen lassen und auf beiden denselben Query absetzen, ...
    (de.comp.datenbanken.mysql)
  • Re: Probleme mit IIS 6 und Ajax Applikation
    ... Standard sind 4 paralelle Verbindungen. ... Wir haben dabei eine Dritthersteller Ajax Chat Applikation integriert, ... Auf IIS 5 funktioniert die Applikation tadellos. ...
    (microsoft.public.de.inetserver.iis)
  • Re: Desktop messages Abfragen
    ... Applikation wird aktives Fenster ... Titelbar der Applikationen hat sich geändert. ... Ich möchte diese Envents nicht ... beobachten und auf Nachrichten reagieren die dich interessieren. ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • SetWindowsHook / SetWindowsHookEx
    ... Diese Applikation soll einen globalen Hook in einer eigenen DLL verwenden. ... Welchen Ansatz sollte man beim Verschicken von Nachrichten aus einer "globalen" DLL verfolgen: ...
    (microsoft.public.de.vc)