rfc:socketactivation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rfc:socketactivation [2012/10/18 23:29]
davidstrauss [Why not just use the ondemand process manager?]
rfc:socketactivation [2014/04/08 22:52]
levim Inactive
Line 3: Line 3:
   * Date: 2012-10-17   * Date: 2012-10-17
   * Author: David Strauss <​david@davidstrauss.net>,​ Jerry Blakley <​jerry@getpantheon.com>​   * Author: David Strauss <​david@davidstrauss.net>,​ Jerry Blakley <​jerry@getpantheon.com>​
-  * Status: ​Under Discussion+  * Status: ​Inactive
   * First Published at: http://​wiki.php.net/​rfc/​socketactivation   * First Published at: http://​wiki.php.net/​rfc/​socketactivation
   * Patches: [[rfc/​socketactivation/​build.patch|build.patch]] (needs to be made optional), [[rfc/​socketactivation/​activate.patch|activate.patch]]   * Patches: [[rfc/​socketactivation/​build.patch|build.patch]] (needs to be made optional), [[rfc/​socketactivation/​activate.patch|activate.patch]]
Line 61: Line 61:
  
 ==== /​etc/​php-fpm.d/​my-php-fpm-pool.conf ==== ==== /​etc/​php-fpm.d/​my-php-fpm-pool.conf ====
 +
 +It's possible the final implementation may move to "​listen = fd:3" or similar syntax to directly request use of an inherited socket rather than requiring a perfect socket configuration match-up between the systemd socket configuration and the PHP-FPM pool configuration. This would make PHP's inheritance more consistent with my nginx proposal.
  
 <​file>​ <​file>​
Line 88: Line 90:
 ==== Why not just use the ondemand process manager? ==== ==== Why not just use the ondemand process manager? ====
  
-The ondemand process manager still keeps considerable memory +The ondemand process manager still keeps considerable memory allocated, and PHP-FPM currently has some idle CPU load when not processing requests. It'​s ​<​1% ​of a core per service, but it adds up when you manage 500+ pools, each as a service for security/​resource isolation, ​on a box.
-allocated, and PHP-FPM currently has some idle CPU load (<1% per +
-service, but it adds up when you manage 500+ pools on a box) when not +
-processing requests. +
- +
-The ondemand process manager doesn'​t solve the dependency issue +
-mentioned earlier (a web server requiring PHP-FPM to be ready) or +
-allow privileges to be dropped before PHP-FPM gets invoked at all. The +
-latter is useful for platform providers that let users configure +
-PHP-FPM for their individual use cases but want to provide assigned +
-"​listening"​ sockets.+
  
 +The ondemand process manager doesn'​t solve the dependency issue mentioned earlier (a web server requiring PHP-FPM to be ready) or allow privileges to be dropped before PHP-FPM gets invoked at all. The latter is useful for platform providers that let users configure PHP-FPM for their individual use cases but want to provide assigned "​listening"​ sockets.
 ==== What about Upstart support? ==== ==== What about Upstart support? ====
  
-Upstart seems to have basic socket activation support, and integrating ​support ​would be a great follow-on project. All socket activation basically works the same way, in the sense of a file descriptor getting handed into the daemon. This RFC would pave the way for integration into additional superserver and init daemons.+Upstart seems to have basic socket activation support, and integrating ​PHP-FPM with it would be a great follow-on project. All socket activation basically works the same way, in the sense of a file descriptor getting handed into the daemon. This RFC would pave the way for integration into additional superserver and init daemons. 
 + 
 +==== What about APC opcode cache efficiency? ==== 
 + 
 +In order for pools to share an opcode cache they must be forked from the same parent process. There are ways to work around that, but it requires some fancy fd passing footwork in APC and I guess in many instances you don't actually want to share across pools anyway. (Abbreviated from Rasmus on PHP internals)
 ===== Changelog ===== ===== Changelog =====
  
 +  * 2012-11-09: Explain a minor configuration change possibility to harmonize this proposal with the one for nginx.
   * 2012-10-18: Integrate discussion items from the PHP internals list.   * 2012-10-18: Integrate discussion items from the PHP internals list.
   * 2012-10-18: Patches added.   * 2012-10-18: Patches added.
   * 2012-10-17: Initial version.   * 2012-10-17: Initial version.
rfc/socketactivation.txt · Last modified: 2017/09/22 13:28 (external edit)