Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4904 > unrolled thread

PHP fpm pool stirbt leise

Started byTim Ritberg <tim@server.invalid>
First post2023-03-16 18:40 +0100
Last post2023-03-17 19:13 +0100
Articles 3 — 2 participants

Back to article view | Back to de.comp.lang.php


Contents

  PHP fpm pool stirbt leise Tim Ritberg <tim@server.invalid> - 2023-03-16 18:40 +0100
    Re: PHP fpm pool stirbt leise Arno Welzel <usenet@arnowelzel.de> - 2023-03-17 15:42 +0100
      Re: PHP fpm pool stirbt leise Tim Ritberg <tim@server.invalid> - 2023-03-17 19:13 +0100

#4904 — PHP fpm pool stirbt leise

FromTim Ritberg <tim@server.invalid>
Date2023-03-16 18:40 +0100
SubjectPHP fpm pool stirbt leise
Message-ID<tuvkar$23d91$1@tota-refugium.de>
Hi!

Ich habe hier einen Server mit einigen kleinen Webpressseiten und PHP 
7.4 als FPM laufen.

Der Traffic ist niedrig. Denn noch scheint ein Wordpress rechenlastig zu 
sein, ich habe es in einen eigenen Pool geschoben.
Da ist mir aufgefallen, dass die Worker/Forks gar nicht ihre maximale 
Lebenzeit (500 Requests) erreichen und schon so mit ca. 200 sterben.

Das Log auf notice sagt dazu gar nichts, erst mit debug kommt sowas:
"pm_children_bury(), line 261: [pool $bla] child 8559 has been killed by 
the process management after 144.199528 seconds from start"

Der andere Pool loggt normal über notice:
"child $bla exited with code 0 after 10841.346 seconds from start"

Über die Statistic /status kann ich die aufgelaufenen Requests per 
Pool/child sehen.

Der process manager läuft als dynamic.

Ideen dazu?

Tim

[toc] | [next] | [standalone]


#4905

FromArno Welzel <usenet@arnowelzel.de>
Date2023-03-17 15:42 +0100
Message-ID<k7jcioFnqakU11@mid.individual.net>
In reply to#4904
Tim Ritberg, 2023-03-16 18:40:

> Ich habe hier einen Server mit einigen kleinen Webpressseiten und PHP 
> 7.4 als FPM laufen.

PHP 7.4 ist end-of-life.

Ich würde prüfen, ob man die zumindest auf PHP 8.0 umstellen kann.
WordPress selbst läuft mit PHP 8.0, nur manche AddOns sind vielleicht
noch nicht soweit - aber hier laufen fast alle WordPress-Sites schon mit
PHP 8.0, manche auch schon mit PHP 8.1.

> Der Traffic ist niedrig. Denn noch scheint ein Wordpress rechenlastig zu 
> sein, ich habe es in einen eigenen Pool geschoben.
> Da ist mir aufgefallen, dass die Worker/Forks gar nicht ihre maximale 
> Lebenzeit (500 Requests) erreichen und schon so mit ca. 200 sterben.
> 
> Das Log auf notice sagt dazu gar nichts, erst mit debug kommt sowas:
> "pm_children_bury(), line 261: [pool $bla] child 8559 has been killed by 
> the process management after 144.199528 seconds from start"
> 
> Der andere Pool loggt normal über notice:
> "child $bla exited with code 0 after 10841.346 seconds from start"
> 
> Über die Statistic /status kann ich die aufgelaufenen Requests per 
> Pool/child sehen.
> 
> Der process manager läuft als dynamic.

dynamic würde ich nur im Ausnahmefall machen, wenn man völlig unsicher
ist, wieviel Last auf dem Server anfällt. static ist oft deutlich
stressfreier. Auch die Anzahl maximaler Requests pro Worker würde ich
deutlich höher setzen, z.B. 5000 oder 10000. Das die Worker überhaupt
beendet werden, ist ja nur eine Sicherheitsmaßnahme um negative
Auswirkungen durch Memory Leaks zu vermeiden.

Hier läuft eine WordPress-Website mit ca. 2000-5000 Visits pro Tag mit
folgenden Einstellungen:

pm = static
pm.max_children = 10
pm.max_requests = 5000

Wobei ich pm.max_requests erstmal auf 0 (unbegrenzt) lassen würde und
dann beobachten würde, ob eine Begrenzung überhaupt notwendig ist und
ggf. mit Apache JMeter o.Ä. testen.


-- 
Arno Welzel
https://arnowelzel.de

[toc] | [prev] | [next] | [standalone]


#4906

FromTim Ritberg <tim@server.invalid>
Date2023-03-17 19:13 +0100
Message-ID<tv2ako$24prh$1@tota-refugium.de>
In reply to#4905
Am 17.03.23 um 15:42 schrieb Arno Welzel:
> Tim Ritberg, 2023-03-16 18:40:
> 
>> Ich habe hier einen Server mit einigen kleinen Webpressseiten und PHP
>> 7.4 als FPM laufen.
> 
> PHP 7.4 ist end-of-life.
Nicht für Debian! ;-)

> 
> dynamic würde ich nur im Ausnahmefall machen, wenn man völlig unsicher
> ist, wieviel Last auf dem Server anfällt. static ist oft deutlich
> stressfreier. Auch die Anzahl maximaler Requests pro Worker würde ich
> deutlich höher setzen, z.B. 5000 oder 10000. Das die Worker überhaupt
> beendet werden, ist ja nur eine Sicherheitsmaßnahme um negative
> Auswirkungen durch Memory Leaks zu vermeiden.
Ich hatte die Worker schon höher, aber das bringt ja nichts, diese Zahl 
erreicht er nie.


> Hier läuft eine WordPress-Website mit ca. 2000-5000 Visits pro Tag mit
> folgenden Einstellungen:
> 
> pm = static
Probiere ich vielleicht mal aus.
Wobei der andere Pool ja super mit dynamic läuft.

Tim

[toc] | [prev] | [standalone]


Back to top | Article view | de.comp.lang.php


csiph-web