PHP per FastCGI, keine parallele Verarbeitung Hallo,
seit einiger Zeit versuchen meine Kollegen und ich, FastCGI unter Windows sauber zum Laufen zu bekommen - aber ohne Erfolgt.
Kurz was zur Infrastruktur der Teststellung:
Wir haben 3 (virtuelle)Server (Windows 7 Prof N 32-Bit). Auf Server 1 läuft ein Webserver und eine LoadBalancer, auf Server 2 und 3 PHP als FastCGI. Der LoadBalancer ist dabei eine Eigenentwicklung, welcher FastCGI-Verbindungen in Abhängigkeit der Serverlast verteilt, und funktioniert ohne Probleme.
Auf den "PHP-Servern" wird PHP 5.3.5 (32 Bit) wie folgt über ein Skript gestartet:
set FCGI_MAX_CONNS=10
set FCGI_MAX_REQS=10
set FCGI_MPXS_CONNS=0
set PHP_FCGI_CHILDREN=10
set PHP_FCGI_MAX_REQUESTS=10000
php-cgi.exe -b 127.0.0.1:8129 -c .\php-extern.ini
[Update] die IP-Adresse ist real eine andere
Auf den ersten Blick läuft auch alles super. Anfragen werden ohne Probleme mit allen Funktionen abgearbeitet. Nur wenn parallele Anfragen eingehen, werden diese nur sequenziell abgearbeitet.
Beispiel:
Anfrage 1: Verarbeitungszeit einzeln 10 Sekunden
Anfrage 2: Verarbeitungszeit einzeln 5 Sekunden
Anfrage 3: Verarbeitungszeit einzeln 1 Sekunden
Gehen die drei Anfragen zusammen ein, dann ergibt sich Folgendes
Anfrage 1: Verarbeitungszeit 10 Sekunden
Anfrage 2: Verarbeitungszeit 15 Sekunden
Anfrage 3: Verarbeitungszeit 16 Sekunden
Ähnliches lässt sich manuell nachstellen. Öffnet man z.B. zwei Telnet-Verbindungen und ruft PHP direkt auf, reagiert PHP auf die zweite Verbindung erst, wenn die erste Verbindung geschlossen wurde.
Nun die hoffende Frage nach einem Tipp... (es kann nur an der Konfiguration bzw. dem Aufruf vom PHP liegen)
Danke und Gruss, BrigitteW
Geändert von BrigitteW (12.03.2011 um 09:33 Uhr).
Grund: Ergänzung um einen Hinweis zur IP-Adresse im Beispiel
|