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

Beitrag lesen

Halihallo Sven

Danke das war es was mich interessierte ;-) Nur wenn ich das ganze mit PERL mache einst Du dann mod_perl + Apache?

mod_perl unter Apache bringt ca. die 10 fache Performance, als "normales Perl" unter
dem Apachen. Kommt natürlich stark auf den Kontext an, wobei dein Anwendungsfeld eben
_genau_ davon profitieren würde.

Was ist die Aufgabe? Einen eigenen, ultraschlanken Webserver zu programmieren, um damit gewisse Dinge besser loggen zu können?

Genau.

So habe ich es jedenfalls verstanden. Dann wird weder Apache Verwendung finden, noch mod_perl. Und der Geschwindigkeitsgewinn von mod_perl wird auch gar nicht benötigt,

Die Frage von Andreas lautete: Welchen Faktor mod_perl bzgl. Performance ausmacht.

denn er beruht schlicht darauf, das Perl-Skript einmal zu kompilieren und dann resident im Speicher zu halten. Das passiert ebenso, wenn man mit Perl einen Demon programmiert, der dann für längere Zeit laufen soll, um eben diesen ultraschlanken Server zu spielen.

Ja, da hast du recht. Ich glaube in der "Hitze des Gefechts" hat Andreas und ich das
aus den Augen verloren ;)
Aber wir kamen eigentlich aus der C-Richtung; ein eigener Daemon auf C-Basis ist
_bestimmt_ schneller (wenn man ihn gut programmiert) als Apache.

Also bitte: Apache und mod_perl und sockets komplett vergessen, wenn es darum geht, das zu programmieren, was _ansonsten_ der Apache macht.

mod_perl vergessen, ja. C vergessen, nein.

Und wenn das tatsächlich doch nicht das ist, was gewünscht war: Der Apache bietet tolle Möglichkeiten, die Logdatei frei zu konfigurieren. Da kann man im Prinzip alle Angaben des HTTP-Requests reinpacken.

Ich mag mich an eine Diskussion erinnern, wo mir Andreas _genau_ das vorgeschlagen hat,
ich musste damals abweisen, da ich noch einige Funktionen brauchte, die der Apache nicht
hergeben kann. Fakt ist, dass Andreas das Loggin noch schneller braucht. Das sich
dies auch über mod_perl oder sonstiges nicht erreichenlässt stimmt. Aber mit C bietet
sich da schon noch einiges an.

Und man hat nicht die Stolperfallen, die eine Eigenentwicklung eines HTTP-Servers so mit sich bringen könnte. Insbesondere ist der Apache ja wohl durchaus als schnell einzustufen, zumindest beim Ausliefern von statischem Content. Und schneller, als ein flat logfile zu schreiben, wird auch eine Eigenbaulösung nicht arbeiten können.

Nun, da kenne ich den Sourcecode nicht. Aber kann man den Apachen anweisen nur
zu loggen? - Für das, was Andreas will, ist der Apache nicht hergestellt worden. Folglich
dürfte er auch nicht darauf getrimmt worden sein => deshalb bin ich der Meinung, dass
ein gutes C-Programm den Apachen in die Knie zwingt. Apache erfüllt HTTP-Spezifikationen,
verhält sich immer korrekt und versucht den Request richtig aufzulösen (also auch ein
kleiner Blick in die MainCore-Repräsentation der httpd.conf); Fakt ist, dass dies alles
für das logging im Sinne von Andreas nicht relevant ist und einer Performanceverschwenung
entspricht. Es ist jedoch zweifelhaft, ob das derart viel ausmacht, da gebe ich dir
recht => da gibt's nur eines: Testen! ;)

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