Philipp Hasenfratz: OT: performanter Server für HTTP-Logging

Beitrag lesen

Halihallo Andreas

Nächste Woche mache ich trotzdem mal ein paar Tests, mal gucken ob ich den Apachen in die Knie zwingen kann. Ich werde mal so ein paar richtig nette Benchmarks fahren, ich werde Apache Win/Linux vergleichen, Apache 1/2, und das alles mit einem solchen einfachen Log-Request, einem durchschnittlichen statischen html-Dokument, einem PHP-Script und einem PERL-Script, vielleicht vergleiche ich auch noch die Modul und CGI Varianten, mal schaun ;-) das alles interessiert mich nämlich mal ;-)

Wenn's möglich ist, täten mich die Benchmarks interessieren. Falls du dazukommst und
nicht der Forums-Droge (Level10) verfällst ;-)

Hast Du ideen für ein "tyisches" Script? In ner Schleife bis 1000 Zählen oder sowas? Vielleicht noch die RegEx Engine anwefen... mal sehen.

Ein typisches Script für was? - Um die Requests zu starten? - Warum RegExp?
Habe IMHO grad keines zur Hand, aber wenn du etwas spezifizierst, steuere ich meinen
Beitrag zum Bench dazu.

Stimmt. Da siehste, wie langsam Perl ist ;)
aber um den Faktor? Nö, ich bin absolut dämlich heute, das forken bringt gar nichts, oder nicht viel, denn wenn die Leitung nur 16KB schaft dann schafft sei nur 16 KB, da bringt alles programmieren nichts, über die Leitung kann nicht mehr kommen als die Bandbreite hergibt. Also doch nicht so schlim mit PERL(bzw. kann ich keine Aussage dazu machen) ;-) ich kann es ja auch mal mit PERL auf localhost probieren ;-)

Ja, die Bandbreite ist bei dir übers INET das begrenzende... An die 16KB kommst du auch
mit einem Prozess, der sequentiell alle Requests versendet... localhost ist IMHO die
einzige Möglichkeit (oder eben übers lokale Netzwerk). Magst dich noch erinnern? -
Matti hat's auf ca. 200-400 Requests/s geschafft.

Aber _gemessen_ hast du die Performance des
Browsers und der hat bei dir kurzzeitig 300-400 Requests/s geschafft...
_kurzzeitig_ habe ich fast 1000 Requests/s geschafft, 500 war der Schnitt, denn hinterher wird es sehr langsam wenn der Browser probiert  50.000 und mehr Bilder darzustellen... Vielleicht sollte man das mit Javascript machen! Geht das überhaupt? Wäre ja ein Witz wenn ich  mit Javascript einen Server abschießen könnte!

Kein Witz, ich habe sogar mit JS den Computer aufgehängt... Ein waschechter Javascript-
Virus :-)
Natürlich geht das auch mit JavaScript, jedoch wird das um einiges langsamer sein, als
wenn du mit PHP die HTML Seite ausgibst; desweiteren kannst du über JS nicht die
Darstellung verhindern => kein Performancegewinn. Du kannst jedoch versuchen, alle in
ein hidden-div zu stecken, dann lädt der Browser die Bilder hoffentlich trotzdem,
versucht sie jedoch nicht darzustellen.

Ein Script, dass an einem Port lauscht und einfach wartet. Dieses Script auf allen
Rechnern starten und dann von einem Rechner aus, ein anderes Script starten, dass diese
Ports anpingt, dann sollen alle lauschenden Scripte gestartet werden und dann sollen die
Requests losdüsen. So erreichst du ein ziemlich zeitnahes, synchrones starten.
Was für ein Script, die Rechner haben wie gesagt keinen PERL-interpreter, und das batch sowas kann wage ich zu bezweifeln ;-)

Ja, da hast du recht. Ich glaube aber kaum, dass du um eine Programmiersprache
herumkommst bzw. nur mit Mehraufwand, der nicht sein müsste. Klar, du müsstest die
Uhrzeiten synchronisieren, könntest einen zeitgesteuerten Task starten und und und,
aber wäre es nicht einfacher PHP oder Perl zu installieren?

In diesem Sinne -

  • try2hack.nl :-)

Viele Grüsse

Philipp

0 40

Eigener Webserver in Delphi

Kay
  • sonstiges
  1. 0
    Philipp Hasenfratz
  2. 0
    Philipp Hasenfratz
    1. 0
      Kay
    2. 0
      Andreas Korthaus
      1. 0
        Philipp Hasenfratz
        1. 0

          OT: performanter Server für HTTP-Logging

          Andreas Korthaus
          • webserver
          1. 0
            Philipp Hasenfratz
            1. 0
              Andreas Korthaus
              1. 0
                Philipp Hasenfratz
              2. 0
                Michael Schröpl
            2. 0
              Sven Rautenberg
              1. 0
                Philipp Hasenfratz
                1. 0
                  Andreas Korthaus
                  1. 0
                    Philipp Hasenfratz
                    1. 0
                      Andreas Korthaus
                      1. 0
                        Andreas Korthaus
                        1. 0
                          Philipp Hasenfratz
                          1. 0
                            Andreas Korthaus
                            1. 0
                              Philipp Hasenfratz
                              1. 0
                                Andreas Korthaus
                                1. 0
                                  Philipp Hasenfratz
                              2. 0
                                Michael Schröpl
                                1. 0
                                  Andreas Korthaus
                            2. 0
                              Michael Schröpl
                        2. 0
                          Michael Schröpl
                          1. 0
                            Andreas Korthaus
                      2. 0
                        Philipp Hasenfratz
                        1. 0
                          Andreas Korthaus
                          1. 0
                            Philipp Hasenfratz
                            1. 0
                              Andreas Korthaus
                              1. 0
                                Philipp Hasenfratz
                                1. 0
                                  Andreas Korthaus
                                  1. 0
                                    Philipp Hasenfratz
                          2. 0
                            Michael Schröpl
                            1. 0
                              Andreas Korthaus
                              1. 0
                                Michael Schröpl
                  2. 0
                    Michael Schröpl
                    1. 0
                      Andreas Korthaus
                      1. 0
                        Michael Schröpl