stefankittel
Goto Top

Verständnisfrage zu pm max children bei Nginx

Hallo,

ich habe eine Verständnisfrage zu pm.max_children bei Nginx.
System: Debian Jessie, Nginx, PHP-FPM
Alles frisch installiert.

Ich möchte gerne für eine Seite eine Obergrenze an aktiven Besuchern festlegen.
Damit deutlich vor der Leistungsgrenze der Besucher eine "schöne" Warteseite sieht.
Die Seite läuft unter PHP.

Meine Idee

PHP-FPM
pm = static
pm.max_children = 50

NGINX
error_page 504 /error504.html;
fastcgi_connect_timeout 5;
fastcgi_send_timeout 5;
fastcgi_read_timeout 5;


Damit sollten nur 50 gleichzeitige PHP-Anfragen bearbeitet werden können.
Jede weitere Anfrage sollte einen 504 erzeugen der dann die 504 Seite öffnet.

Zum testen habe ich max_children auf 1 gestellt.
Dann eine PHP-Datei erstellt die 5 Sekunden wartet und dann einen Text ausgibt.
Nun habe ich im Browser 6 Tabs mit der Datei geöffnet und alle (fast) gleichzeitig gestaret.

Nun sollten die ersten beiden Tabs funktionieren und der Rest einen 504 erzeugen.
Aber es funktionieren alle. Alle 5 Sekunden wird einer Fertig.

Was mache ich falsch?

Viele Grüße

Stefan

Content-Key: 283180

Url: https://administrator.de/contentid/283180

Ausgedruckt am: 28.03.2024 um 19:03 Uhr

Mitglied: StefanKittel
StefanKittel 17.09.2015 um 20:23:52 Uhr
Goto Top
Hallo,

ich weiß nicht genau wie, aber das Problem ist meine Testmethode mit dem Browser.
Mit Wget in der Shell funktioniert es.

Jemand eine Idee wie man das Testen kann?
Also dass ich im Browser den 504 sehe?

Viele Grüße

Stefan
Mitglied: StefanKittel
StefanKittel 17.09.2015 um 21:45:01 Uhr
Goto Top
Irgendwas stimmt aber nicht.

es wird, ini diesem beispiel mit pm.max_children=1, nur ein PHP-Skript zur Zeit ausgeführt.
Aber die "Freigabe" erfolgt nicht sofort, sondern erst nach ein paar Sekunden.

Wenn ich also pm.max_children=200 setzt und ein ab mit -c 180 dürften keine 504 enthalten sein.
(Der Server kann eher 500). Aber es sind ca. 2% 504s enthalten.

Hat da mal Jemand Rat?

Stefan