pm.max_children, php-fpm, wieviel kann man setzten?

2 Antworten

Diesel Quelle httpshttps://help.nextcloud.com/t/php-fpm-optimization-on-raspberry-pi/160363 sagt 5 respective 7 für einen 3B und diese hier ://intux.de/2020/05/25/php-fpm-einstellungen-fuer-nextcloud/?noamp=available sagt sogar 120 sind okay für Nextcloud. 🤷‍♂️

Meine Devise wäre ausprobieren. Mehr als Abschmieren kann dir das system nicht 😜


jumbo125 
Beitragsersteller
 21.05.2024, 23:05

ich bin jetzt bei 50. mal sehen was raus wird

Ist letzlich eine Frage davon, wie groß die einzelnen Prozesse wohl so werden. Wenn das z.B. 100MB wären, dann wären maximal 20 Kinder vielleicht nicht so prickelnd.

Bleibt ein Kind typischerweise unter 5MB, dann würden auch ein Wert von 100 kaum zu Problemen führen.


jumbo125 
Beitragsersteller
 21.05.2024, 23:14

okay. ist jeder http-request zur selben zeit ein "children"
was genau ist ein children? ich benutzte es nur für mein heimnetzwerk.....
kann ich irgendwo die maximale prozess größe pro prozess setzen?

KarlRanseierIII  21.05.2024, 23:19
@jumbo125

Ne, die Prozessgröße ergibt sich ja unter anderem aus dem was die einzelnen PHP-Prozesse so brauchen.

Ich bin nicht ganz sicher wie php-fpm das Prozessmanagement exakt regelt, childs (children) sind die zahl der php-Prozesse. Ansich ist fpm ja dazu da, daß gerade nicht für jeden Request ein Prozess gespawned wird - sonst könnte man auch gleich mod_php nehmen.

jumbo125 
Beitragsersteller
 21.05.2024, 23:20
@KarlRanseierIII

okay, das heißt einfach mal austesten ob und wie gut es mit 50 funktioniert....

KarlRanseierIII  21.05.2024, 23:28
@jumbo125

Joah, und es scheint so, daß für jeden Request ein fpm-child laufen muß - Wenn wir davon ausgehen, daß die 20 ESPs relativ zeitgleich ihren Request absetzen, dann wirst du erinen Wert über 20 brauchen.

Und dann ist auch die Frage, ob man nicht min_psarse entsprechend setzt.

KarlRanseierIII  22.05.2024, 00:13
@jumbo125

Mein Fehler:

pm.min_spare_servers
int

Die gewünschte Mindestanzahl an Serverprozessen im Leerlauf.
Wird nur verwendet, wenn pm auf dynamicgesetzt ist.
Ebenfalls zwingend notwendig.

Das ist quasi die Zahl der unbeschäftigtenKindsprozesse. Wenn wir annehmen, daß Du z.B. 20 erzeugte Prozesse hast, die am abarbeiten sind udn nun ein neuer Request reinkommt, dann müßte erst ein neues Kidn erzeugt werden. Da würde ich ggf. nen Wert von 5-10 vorhalten.

jumbo125 
Beitragsersteller
 22.05.2024, 11:06
@KarlRanseierIII

Okay.... Leider hatte ich bei 20 wieder das problem....

Bedeutet pm.min_spare_servers von 10, dass ich in Summe 30 habe und nicht 20 kindsprozesse?

Wäre es dann besser 20 kindsprozesse und 10 min spare zu verwenden, ansttatt gleich 30 kindsprozessr anzugeben?

Kann ich die durchschnittliche Größe von prozessoren auslesen? Oder kann ich irgendwie mitzeichnen, welcher request welchen Prozess startet und wieviel speicher der benötigt?

Dann wurde ich es mal 5 minuten Protokollieren und durchsehen...

jumbo125 
Beitragsersteller
 23.05.2024, 10:46
@KarlRanseierIII

super link! danke
dennoch ein kurze abschließende frage:
bevor du mir den link gesendet hast, habe ich max_chil einfach mal auf 50 gesetzt.
ich habe eine rund um die uhr RAM abfrage meiens raspberrys. a sind NIE mehr als 50% ausgelastet. das würde bedeuten, dass noch 2GB Ram frei sind, trotz den 50 child prozessoren... kann ich das dann nicht einfach so belassen?
Danke

KarlRanseierIII  23.05.2024, 22:13
@jumbo125

Ja, dann sollte 50 soweit in Ordnung sein.

Im Endeffekt werden ja eh weniger genutzt, wenn weniger gebraucht werden. Interessant wird das halt, wenn nicht nur ein einfaches Skript läuft, denn dann könnte da durchaus mehr RAM in Nutzugn sein ;-).