Edit report at https://bugs.php.net/bug.php?id=54098&edit=1
ID: 54098
Comment by: fat@php.net
Reported by: marco at mimecom dot net
Summary: Overly high defaults in config
Status: Assigned
Type: Feature/Change Request
Package: FPM related
Operating System: Linux
PHP Version: trunk-SVN-2011-02-25 (SVN)
Assigned To: fat
Block user comment: N
Private report: N
New Comment:
See http://news.php.net/php.internals/53723
for updates
Previous Comments:
------------------------------------------------------------------------
[2011-02-25 08:37:39] marco at mimecom dot net
Further arguing the low memory systems a bit: I commonly get myself a 512M slice
to start development of a site. It's fast enough to develop on - and when time
come to deploy, I'd ramp it up to something faster. So the low memory scenario
is highly valid in my case. And even if we are not talking clouds, I think many
places in the world would have low-memory hardware due to cost reasons. In the
cloud, slices commonly start at 256M even - although even I feel it's too low.
Compare to MySQL - a default install is tuned for the lowest common denominator
as well, making sure it runs. The nice dining of large systems comes with a
tuning dessert...
------------------------------------------------------------------------
[2011-02-25 08:25:13] marco at mimecom dot net
Well, since the configuration is active - not commented out - I'd say it is
pretty much a default. A default make install would run with this configuration
without modifications. You are right that my statement of there being a lot of
1Gb servers out there is taken out of the air - but I run a few (and two with
512Mb - still snappy), I know they are cheap (and it gets pretty expensive when
you try to run larger servers) so it's just my *suspicion* that they are common.
In any case, since the settings effectively are a default per above, I'd much
rather see the software underperform than bring servers down. One way to fix it
would be to comment out that setting and not let php-fpm start unless you go
configuring yourself. But do mention in that comment to crosscheck with php's
memory setting. It took a giant jump from a default 16M to 128M, which is why I
think these settings kill servers. Before, at 16M, 50 was actually great.
P.S. I don't really know what prompted that jump above, but it's not my
concern... I guess there were reasons for it.
------------------------------------------------------------------------
[2011-02-25 08:05:19] fat@php.net
It's not a bug it a feature ;)
The subject will be discussed with other dev soon. I'll keep you updated.
For me, default value, especialy those one should not be called "default value",
but "exemple values". Saying that FPM is widely used in VPS with 512Mb of RAM is
just a wrong assumption. As saying that FPM is widely used with physical servers
with 12Gb of RAM. It depends on the server on which FPM runs but on the code
itself. At the end, the sysadm is the only one who can set the right values.
So if 50 is too high for some, they will lower it to 6. For others 50 will be
too low and they will higher it to 200 or whatever.
From my point of vue, 50 is maybe quite too high, but the proposed value are too
low. If you really want to lower the max and still use the dynamic PM, we can
set:
pm.max_children = 10
;pm.start_servers = 2
;pm.min_spare_servers = 1
;pm.max_spare_servers = 4
------------------------------------------------------------------------
[2011-02-25 05:56:06] marco at mimecom dot net
Description:
------------
The default setting in the pool sets pm.max_children to 50, which with php's
upped default memory_limit of 128Mb makes many moderately equipped machines to
crash from out-of-memory. The settings combined makes it possible to consume
6GB of memory in a bad scenario. Since I suspect many a server nowadays are 1Gb
(or even 512Mb) VPS's running on the different clouds out there, the settings
are grossly excessive. I reported a bug against Ubuntu at first, but I think
this is really the right place for it.
https://bugs.launchpad.net/ubuntu/+source/php5/+bug/723480
pm.max_children should be more like 6 initially, with an explanation to increase
the number if memory permits. Ether that or the default memory_limit should be
lowered.
I have read posts about running VPS where operators have to reboot every so
often, and I think it *might* have to do with this problem, since I'm sure
nginx+php+php-fpm is getting very popular as a stack.
Expected result:
----------------
Snappy happy server.
Actual result:
--------------
Server get sad, wrinkles, get dementia, finally get a stroke and dies. Takes as
long time as it took my mother but in computer-years.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=54098&edit=1