Andreas Korthaus: OT: performanter Server für HTTP-Logging

Beitrag lesen

Hi!

Eine Idee: ich mißbrauche den Browser dafür ;-)

Und zwar generiere ich ein HTML-Dokument  mit 100.000 Bildern:

for($i=1; $i<100000;$i++) {
$str .= <<<EOT
<img src="http://localhost/x.g?i=$i">
EOT;
}

Das öffne ich im Browser und nutze so die Leistung des Browsers. Direkt probiert, auf lokalhost erreiche ich kurzzeitig 400-600 Requests pro Sekunde! Das ist doch schonmal was. Nur reicht das nicht. Ich denke der Mozilla ist nicht wirklich gut geeignet, hat sich direkt über 100MB Ram geschnappt und 80-90 % CPU. Der Apache hat sich mit 10-15 &CPU und 2-3MB RAM begnügt. Heißt das der Apache kaum Arbeit dabei hatte!
Aber welchen Browser könnte ich besser verwenden? Kennt jemand einen besonders schnellen Browser? Opera? Sollte unter Linux laufen, wobei ich das evtl im Lan probieren könnte, das ganze auf 10 Windows-Rechner verteilt, dann bekomme ich schon ne nette Rate denke ich.

Trotzdem würde ich lieber ein eigenes Tool schreiben. Auch wenn der Apache bei 500 Requests pro Sekunde nur so wenig ausgelastst ist heißt  das ja da geht noch deutlich mehr, nur kann ich das nicht alleien über  mein lokales system testen.

Aber ich habe auch mal weitergedacht. Ein Request-Header hatte 807 Byte und war wirklich so klein wie möglich.  Sagen wir mal 1 KB * 500 pro Sekunde, heißt 30 MB pro Minute - Traffic und Festplatte. An einem Tag kommt man da ja auf über 7 GB! Mit dem Resonse-Header, hieße 10 GB pro Tag, sind 300 GB pro Monat, nur für das bisschen. In der Praxis wird man da nicht hinkommen, und wenn ich davon ausgehe das der Apchebei guter Konfiguration(halt auf schnell getrimmt, was meiner nicht ist, da ist ne Menge einkompiliert und ich habe keine Ahnung von vielen Parametern), ich denke der Apache würde sicher 2000 Requests pro Sekunde schaffen, vielleicht sogar mehr, dann sind wir schon satt im Tera-Byte Bereich pro Monat. Also alles in allem, der Apache ist sicher schnell genug. Nur wenn ich direkt eine Verarbeitungs-Routine mit einbauen wollte, also nicht die Apache-Logs verwende sondern irgendwas von PERL, dann wird es wohl erheblich langsamer, nur wenn ich die Daten per Cronjob bearbeite, 8 GB, also 10 Mio Datensätze, das dauert sicher ne Zeit, kann ich überhaupt nicht einschätzen, kommt wohl drauf an was ich alles damit machen will.

Noch ein Engpass ist die Internetanbindung. Bei angenommenen 2000 Requests a 1000 Byte komme ich nichtmal mit ner 10 Mbit Leitung aus, ich kenne die Abstufungen nicht, aber so eine Anbindung ist schon ein nettes Kaliber, denn wenn ich mich nicht irre geht das nicht mehr mit SDSL, sondern braucht ne "richtige" Leitung, ich glaube das nächste ist eine 100Mbit Ethernet-Anbindung, gibt es IMHO auch zu Providern. Braucht dann aber auch eine entsprechende Infrastruktur und das ist das teure, ganz zu schweigen vom Traffic, wenn man 0,5 Cent pro MB zahlt(was IMHO sehr günstig wäre), läge man bei 2 TB bei 10.000 EUR! Naja genug der Spinnerei ;-)

Daher ist mein Interesse ab jetzt nur noch theoretischer Natur, wobei, wenn auf demselben Server andere Internetseiten laufen, wäre es schon gut einen möglichst performanten Logging-Mechanismus zu haben, alleine um die übrigen Seiten zu entlasten.

Noch ein Punkt. Wenn ich im LAN mal so einen Lasttest ausführen will, wie schaffe ich es auf 10 Rechnern(WIn2K) die Browser gleichzeitig dazu zu bewegen, eine Seite aufzurufen?

Mein Idee wäre einen geplanten Task auszuführen und zwar eine Batch-Datei mit:
mozilla http://192.168.0.1/force.html

Nur wie bekomme ich die Zeiten gleich? Kann ich Windows auch über einen Zeitserver synchronisieren?
Und wie ist das mit anderen, schnelleren Browsern, kennt Iht Browser die man genau so mit einer Adresse starten kann?

Naja, Fragen über Fragen... ich find sowas irgendwie immer interessant ;-) Und das meiste lerne/bemerke ich während ich ein Posting schreibe ;-)

Grüße
Andreas

PS: Sorry wegen meiner ständigen Rechtschreibfehler, ich bin so faul...

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