Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:45537 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 49852 invoked from network); 9 Sep 2009 08:13:43 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 9 Sep 2009 08:13:43 -0000 Authentication-Results: pb1.pair.com header.from=mike503@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=mike503@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.221.191 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: mike503@gmail.com X-Host-Fingerprint: 209.85.221.191 mail-qy0-f191.google.com Received: from [209.85.221.191] ([209.85.221.191:40505] helo=mail-qy0-f191.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E5/55-26597-6B367AA4 for ; Wed, 09 Sep 2009 04:13:42 -0400 Received: by qyk29 with SMTP id 29so3437235qyk.16 for ; Wed, 09 Sep 2009 01:13:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=nOmqz+iAPYqQWeZTSEHCs8MT1QpWwlg8G9KhTtFcMlQ=; b=a6ozhot8KvDbj7c0OMuSwtBYPZ/JsbOojsTf+OG9R4e0l9ayj26iWHxbM8jCmD1HXk j7iQaYUuma4LZx0ikdA6uHBMna1HFntreB83DQrsDEC0dj4drMHv7MT1UUCiCAbYp4F2 Dp+QJQ+E5eDQq5U/Fe7kagYrQf3V2bvUwy0cE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=UBTdcoeQZ2XbuUrU67J5H6Vn9zESE6KbjpwgOuPYjdEN7xq+HgjcxChVAM5sKd1WuC uwuhia/G2a9JTKT4Tumb7Z+7NOvsjcjVmzACO/PSp5Gf6dSPpqG31xvZ9BcFheitK4NM ++ujV5gwFFe+lBPQbdvM94WSdPPPo03cDtOwY= MIME-Version: 1.0 Received: by 10.229.34.143 with SMTP id l15mr4400078qcd.80.1252484016406; Wed, 09 Sep 2009 01:13:36 -0700 (PDT) In-Reply-To: <4AA760CC.9060203@iki.fi> References: <99cf22520909081652v29a9ea56q33882849cce3081e@mail.gmail.com> <4AA6F06C.4020008@lerdorf.com> <4AA75C9F.3090605@iki.fi> <4AA75EFF.5040800@zend.com> <4AA760CC.9060203@iki.fi> Date: Wed, 9 Sep 2009 01:13:36 -0700 Message-ID: To: jani.taskinen@iki.fi Cc: Stanislav Malyshev , Rasmus Lerdorf , dreamcat four , internals@lists.php.net, jvlad , Dmitri Dmitrienko Content-Type: text/plain; charset=UTF-8 Subject: Re: [PHP-DEV] [sapi] PHP-FPM (FastCGI Process Manager), by Andrei Nigmatulin - upstream Y/n? From: mike503@gmail.com (Michael Shadle) On Wed, Sep 9, 2009 at 1:01 AM, Jani Taskinen wrote: > Very good point. And I did consider only merging the _good_ parts of this > thing. I haven't had time to check the code yet at all (quite busy at work > right now) but there are some stuff it does we haven't generally considered > the "job of PHP" before. The list of them is here: > > http://php-fpm.org/What_is_PHP-FPM Current: Proper termination of errant processes FastCGI pool configuration, management, proper child recycling Per-pool php.ini overrides Future: Adaptive process spawning (has been in the plans for a while but Andrei never got a chance to get around to finishing it) Hopefully some metrics/reporting Probably changing the configuration file syntax Per-pool specific php.ini file (basically just php-cgi -c, very simple addition to add) (look at the Wishlist page on the wiki...) Lots of room for improvement. I think it will help with resource management as well. Right now you have to arbitrarily assign how many children you want without any real way to measure if it's too many or too little. I had suggested this idea at one point - that is adding in only what is needed from PHP-FPM into PHP core and allowing the management of those hooks from an external tool developed and maintained separately (or through API calls) - then a variety of tools could manage the portions of the FastCGI SAPI that PHP-FPM does to terminate processes, spawn new children, and do whatever else was patched into PHP, and keep the management portion which is in charge of launching children, monitoring them, all that in its own standalone package. I see it as both allowing for more agile development on the management portion as it is lacking in a lot of features that we'd like to see (and not have to wait on PHP core's release cycle to get them in) and also can be packaged separately in distributions, much like spawn-fcgi is right now. Essentially it could be thought of as moving in the direction of spawn-fcgi (being standalone), just with more robust PHP functionality.