Andreas Korthaus: Tutorial zu FCGI gesucht

Beitrag lesen

Hallo!

Beides CGI? Ist zwar ungewöhnlich in dem Ausmaß, aber solche synthetischen Benchmarks sagen ja auch nicht wirklich viel aus. Wäre mal interesant den jeweiligen Code zu sehen.

Nee, einfach nur auf der Konsole ausgeführt Schleife.
Wie gesagt, sicher nicht repräsantativ, aber php scheint schon um Länger langsamer zu sein.

Naja, das sagt ja erstmal nicht viel, PHP ist halt eher auf Web-Entwicklung ausgelegt, siehe z.B.:

$ ls -sh /usr/bin/php  
3\.6M /usr/bin/php  
$ ls -sh /usr/bin/perl  
988K /usr/bin/perl  
$ time php -v  
PHP 5.0.3 (cli) (built: Apr  1 2005 01:51:12)  
  
[...]  
  
real    0m0.038s  
user    0m0.030s  
sys     0m0.010s  
$ time perl -v  
  
This is perl, v5.8.2 built for i686-linux  
  
[...]  
  
real    0m0.007s  
user    0m0.010s  
sys     0m0.000s  

Ich habe eigentlich die Erfahrung gemacht, dass es hier im Webumfeld zwar Unterschiede gibt, aber man kann nicht wirklich sagen ob jetzt mod_php schneller ist oder auch mod_perl, mal das eine, mal das andere, je nach Aufgabe und Implementierung. Auch die verwendete Konfiguration und Version hat teilweise erheblichen Einfluss. Z.B. gab es kürzlich einen Bug in scandir(), nach dessen Behebung die Funktion um mehr als eine Zehnerpotenz schneller wurde. Dafür gabe es letztens auch einen neuen Bug, durch den die Serialisierung von Daten ebenfalls in vergleichbaren Dimensionen langsamer wurde... Dazu kommen auch Verbesserung, z.B. in foreach() in einer der letzten Versionen... und in Perl wird es vermutlich ähnlich sein, wenngleich die Entwicklung hier etwas anders verläuft ;-)
In PHP 5.0 z.B. lag das Augenmerk eher nicht so auf der Geschwindigkeit, sondern an neuen Features. Sehr viele größere Patches die die Geschwindigkeit sehr positiv beeinflussen sind erst jetzt in 5.1 eingeflossen, usw...

Das wird sowieso noch lustig genug, weil dann sicherlich noch an der DB gedreht werden muß.

Ja, aber kommt halt drauf an was Du da für Anfragen hinschickst, und wieviele Daten die DB verarbeiten/speichern muss. Ist wieder die Frage was man hier cachen kann, in jedem Fall sollte man wohl die neue Client-Lib seit 4.1 verwenden, evtl. Prepared Statements oder noch besser Stored Procedures.

Ich sprach die ganze Zeit von einem gleichzeitigen Request. Wenn man z.B. 10 gleichzeitig abfeuert, geht die Latence natürlich hoch.
Dazu benutze ich einen zweiten Server. Bei habe ich über PEN verbunden.
Das Teil ist super, scheint keinerlei eigene Latence zu haben. Aber bei den meisten Linux-Distris ist noch ein anderes (etwas komplexeres) Paket dabei, das sich pound nennt.
Wenn ich es richtig verstanden habe, hat das zusätzlich noch einen Cache/Proxy, was der PEN nicht hat. Hat jemand damit Erfahrungen?

ich nicht, aber was bringt Dir das? Ich gehe davon aus dass Du Dir ja was schönes zum Daten sammeln basteln willst (wie diese Bildchen hin und wieder), also muss ja jeder Request zum Server durchkommen. Bringt ein Cache davor also nix. Ich würde auch erstmal keinen Load-Balancer verwenden, bis zu einem bestimmten Level wird er Dich eher ausbremsen, nämlich so lange bis die eine Maschien am Ende ist. Aber solange sie das nicht ist, kostst es nur unnötige Resourcen. Und bevor ich dann einen Load-Balancer anschaffe, würde bei mir erstmal der DB-Server auf eine eigene Maschine ausgelagert. Ich vermute auch, dass die DB viel schneller zum Engpass wird, als die Verarbeitung des Requests. Einen LoadBalancer davorschalten kann man immer noch. Muss man nur bei der Entwicklung im Hinterkopf haben, aber solange ein Zustand nur in einer einzigen DB gehalten wird, ist auch das weniger ein Problem.

Ich betreibe gerade etwas Forschung, wie ich mit möglichst wenig (Hardware-)Aufwand auf ca. 60 Anfragen pro Sekunde kommen kann...

Das kommt drauf an was Du genau machen musst um einen Request zu bearbeiten. Noch effizienter als ein eigenes Webserver Modul wäre vermutlich ein eigener Webserver (zumindest wenn man weiß was man tut ;-)). Wenn Du Perl verwenden willst, wäre es vielleicht Dank cpan nicht so schwer ein Perl Script als Webserver laufen zu lassen, der wirklich nur das macht und kann, was Du brauchst. Wenn Du nur so Sachen machst wie DB-Zugriffe und das senden von ganz bestimmten Bildern und Headern, dann sollte es kein großes Problem sein. Deutlich effizienter dürfte es mit C funktionieren, allerdings auch deutlich anspruchvoller.

Grüße
Andreas

--
SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
0 46

Tutorial zu FCGI gesucht

Reiner
  • cgi
  1. 1
    Andreas Korthaus
    1. 0
      Reiner
      1. 1
        Andreas Korthaus
        1. 0
          Reiner
          1. 1
            Andreas Korthaus
            1. 0
              Reiner
              1. 1
                Andreas Korthaus
                1. 0

                  Super!

                  Reiner
                  1. 0
                    Andreas Korthaus
                    1. 0
                      Reiner
                      1. 1
                        Andreas Korthaus
                        1. 0
                          Reiner
                          1. 1
                            Andreas Korthaus
                            1. 0
                              Reiner
                              1. 1

                                lighttpd

                                Andreas Korthaus
                                • webserver
                                1. 0
                                  Reiner
                                  1. 1
                                    Andreas Korthaus
                                    1. 0
                                      Reiner
                                      1. 0
                                        Andreas Korthaus
                                        1. 0
                                          Reiner
                                          1. 0
                                            Andreas Korthaus
                                          2. 0

                                            PHP/MySQL optimieren / Caching

                                            Andreas Korthaus
                                            1. 0
                                              Anonymous
                                              1. 0
                                                Reiner
                                                1. 0
                                                  Anonymous
                                                2. 0
                                                  Andreas Korthaus
                                                  1. 0
                                                    Anonymous
                                                    1. 0
                                                      Reiner
                                                      1. 0
                                                        Anonymous
                                                        1. 0
                                                          Andreas Korthaus
                                                          1. 0

                                                            wieder was zum Thema

                                                            Reiner
                                                            1. 0
                                                              Reiner
                                                              1. 0
                                                                Reiner
                                                              2. 0
                                                                Andreas Korthaus
                                                                1. 0
                                                                  Reiner
                                                                  1. 0
                                                                    Anonymous
                                                                    1. 0
                                                                      Reiner
                                                                      1. 0
                                                                        Anonymous
                                                                        1. 0
                                                                          Reiner
                                              2. 0
                                                Andreas Korthaus
                                                1. 0
                                                  Anonymous
                2. 0
                  Christoph Zurnieden
  2. 1
    Christoph Zurnieden
  3. 0
    Andreas Korthaus
  4. 0

    SQL-Abfragen/JOINs optimieren, Volltextsuche

    Andreas Korthaus
    • datenbank