Index | Thread | Search

From:
Leo Unglaub <leo@unglaub.at>
Subject:
lang/php: multiple PHP-FPM master processes
To:
ports@openbsd.org
Date:
Tue, 17 Feb 2026 16:46:02 +0100

Download raw body.

Thread
Hey,

would you (and the maintainers) be OK with a change to the phpXX_fpm.rc 
file that allows the use of multiple PHP-FPM master processes? Currently 
that is not possible because the pexp line matches all master processes.


My process list looks like this:
> php-fpm-8.4: master process (/etc/php-fpm.conf.d/yw_1000.conf)
> php-fpm-8.4: master process (/etc/php-fpm.conf.d/yw_1001.conf)
> php-fpm-8.4: master process (/etc/php-fpm.conf.d/yw_1002.conf)
> php-fpm-8.4: master process (/etc/php-fpm.conf.d/yw_1003.conf)
> php-fpm-8.4: master process (/etc/php-fpm.conf.d/yw_1004.conf)
> ...

Currently every one has it's own .rc script with a hand written pexp 
line, but it would be cleaner if i could just

> ln -s /etc/rc.d/phpXX_fpm /etc/rc.d/phpXX_fpm_yw_1000
> ln -s /etc/rc.d/phpXX_fpm /etc/rc.d/phpXX_fpm_yw_1001
> ln -s /etc/rc.d/phpXX_fpm /etc/rc.d/phpXX_fpm_yw_1002
> ln -s /etc/rc.d/phpXX_fpm /etc/rc.d/phpXX_fpm_yw_1003
> ln -s /etc/rc.d/phpXX_fpm /etc/rc.d/phpXX_fpm_yw_1004
> 
> rcctl set php_fpm_yw_1000 flags -y /etc/php-fpm.conf.d/yw_1000.conf
> rcctl set php_fpm_yw_1001 flags -y /etc/php-fpm.conf.d/yw_1001.conf
> rcctl set php_fpm_yw_1002 flags -y /etc/php-fpm.conf.d/yw_1002.conf
> rcctl set php_fpm_yw_1003 flags -y /etc/php-fpm.conf.d/yw_1003.conf
> rcctl set php_fpm_yw_1004 flags -y /etc/php-fpm.conf.d/yw_1004.conf

Would you be OK with such a change? Or do you want to keep it as it is?



A little bit of background on why having multiple master processes is a 
good idea:

The most important part of a production level PHP hosting is the 
opcache, without it websites can be quite slow. The opcache (including 
JIT function/trace) share the memory between all pools. PHP limits the 
size of the memory used to around 4GB, but if you get over 2GB PHP-FPM 
gets very sluggish (on OpenBSD only). If your server has 200GB of 
memory, the 4GB limit is kind of small. So i split the hostings into 
multiple master processes and with a smaller amount of pools in them.

Another benefit is, that you can isolate them better and restart/reload 
only the ones you actually need.

Thanks