php-fpm - Ressourcen aufteilen

stefkey

Member
Hi,

was ist der Vorteil oder Nachteil wenn ich für jeden vhost (nginx), also für jede Wordpress-Instanz oder CMS, oder Forum oder oder oder einen eigenen php7.0-fpm socket nutze?

Meine Vermutung: Performance eher nachteilig, Sicherheit eher vorteilhaft.

Bei übersichtlichen 10-15 vhosts und 8GB Ram aber mit Nutzung von Redis weiß ich gerade nicht wie ich jede php "Instanz" dann sinnvoll konfiguriere in Bezug auf die Parameter pm.max_children, pm.start_servers, pm.min_spare_servers und pm.max_spare_servers

Kann man dazu etwas pauschal sagen?
 
Ein eigener PHP-FPM Pool pro vHost ist nicht ganz richtig, aber einer pro User. Ein User kann ja durchaus mehrere vHosts haben (z.B. mehrere Subdomains unter der gleichen Domain) und da bringen verschiedene Pools sicherheitstechnisch IMHO keinen Vorteil mehr.
Bezüglich der Parameter muß man individuell sehen, welche man verwendet. Das hängt z.B. auch von der Anzahl der Verbindungen ab, die im Apache konfiguriert sind - theoretisch kann jede Verbindung an PHP weitergereicht werden. Abhängig vom freien RAM kann man mehr oder weniger Child-Prozesse direkt zu Beginn starten (oder per ondemand auch ganz ohne anfangen).
 
Die Performance leider unserer Erfahrung unter mehreren Pool keineswegs bzw. wird nicht besser, wenn man nur einen Pool verwendet. Ebenso ist PHP-FPM ziemlich RAM-sparend. Ein Pool je (Sub-)Domain kann zudem erhebliche Vorteile haben, wenn es darum geht, mit einer hängenden Applikation (Deadlocks, Endlosschleifen etc.) wirklich nur den vHost abzureißen. Der stößt dann an sein Prozesslimit und gut ist's - ohne nennenswerte Einflüsse auf den Rest.

VG
Tim
 
Back
Top