Return-Path: Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: (qmail 99209 invoked from network); 10 Feb 2005 13:24:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 10 Feb 2005 13:24:27 -0000 Received: (qmail 92976 invoked by uid 500); 10 Feb 2005 13:24:22 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 92943 invoked by uid 500); 10 Feb 2005 13:24:22 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 92918 invoked by uid 99); 10 Feb 2005 13:24:22 -0000 X-ASF-Spam-Status: No, hits=0.5 required=10.0 tests=FROM_ENDS_IN_NUMS X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from postoffice6.mail.cornell.edu (HELO postoffice6.mail.cornell.edu) (132.236.56.21) by apache.org (qpsmtpd/0.28) with ESMTP; Thu, 10 Feb 2005 05:24:20 -0800 Received: from ganesha.library.cornell.edu (ganesha.library.cornell.edu [132.236.212.60]) by postoffice6.mail.cornell.edu (8.12.10/8.12.6) with ESMTP id j1ADOHTl022395 for ; Thu, 10 Feb 2005 08:24:17 -0500 (EST) Date: Thu, 10 Feb 2005 08:24:17 -0500 To: dev@httpd.apache.org Subject: Re: UNIX MPMs References: From: "Paul A. Houle" Organization: Cornell University Library Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-8859-15 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID: In-Reply-To: User-Agent: Opera M2/7.53 (Win32, build 3850) X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N On Thu, 10 Feb 2005 11:56:47 +0000, Nick Maynard wrote: > UNIX MPMs that actually _work_ in Apache 2: > worker > prefork (old) > Yeah, but what if you want to run PHP or mod_perl? Sure, PHP or mod_perl ~might~ work for you if you're lucky and you don't compile in the wrong third-party library, but you'll be in a world of pain if you don't. It's very hard to bolt threading onto an existing system that links to legacy libraries. Java managed to provide a thread-safe environment by having a painful API to link to C code, "100% Pure Java" xenophobia -- and it still took them 5 years to make a JVM which was reliable enough for government work. On Linux I've done some benchmarking and found that worker isn't any faster than prefork at serving static pages. (Is it any different on other platforms, such as Solaris?) In principle you might save RAM by running prefork, but in this day and age you can fit 16 GB in a 1U pretty easily and it's cheaper than hiring a programmer who doesn't know how to track down race conditions, never mind one that does.