You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Doug MacEachern <do...@opengroup.org> on 1998/06/06 20:30:54 UTC

Re: Performance Under Win32 and Mod_perl

mod_perl currently has to serialize requests, as 5.004_04 isn't
anywhere near thread-safe.  I plan to integrate with 5.005-tobe
threads this summer, which should improve performance considerably.

-Doug

Dale Couch <dc...@training.orl.lmco.com> wrote:

> I am currently running an Apache server with Mod_perl and it is serving
> exactly 1 CGI.  The users enter from another Web server and run just this
> Perl program.
> 
> I am starting to see that the load is getting to big and I am wondering if
> there might be some places that I can start looking to try to get the
> performance up.
> 
>    Current Time: Friday, 05-Jun-1998 10:05:51 Eastern Daylight Time
>    Restart Time: Friday, 05-Jun-1998 06:01:54 Eastern Daylight Time
>    Server uptime: 4 hours 3 minutes 57 seconds
>    Total accesses: 8207 - Total Traffic: 41.5 MB
>    .561 requests/sec - 2975 B/second - 5.2 kB/request
>    38 requests currently being processed, 26 idle servers
> 
> (I have seen the idle servers go to 6)  Currently I am seeing a request take
> about 20-30 seconds to process.
> 
> This is running
> 
>    Server Version: Apache/1.3.1-dev (Win32) mod_perl/1.11_01-dev
>    Server Built: Jun 4 1998 05:34:32
> 
> Both built using CVS snapshots from that morning.  Using installd, installr
> will not run with mod_perl added in, at least not for me.
> 
> Since Apache is running under Win32 there is only one Apache executable
> running and therefore every request must go through the one Mod_perl Mutex.
> I am assuming that this is where the performance problem is.  I am working
> to make the script more efficient, but it is a multi-page CGI app and I did
> a lot to get it as fast as it is.
> 
> The big question is, is there anything that I can do to help Apache service
> more requests?  Looking at the docs and such, under Unix I would have just
> added more apache processes to take in requests and everything would start
> to settle down.  The machine has plenty of ram and processor power.
> Currently Apache only takes 20MB and the CPU hovers at 30% utilization, this
> is with Oracle and a couple of other file services running along with it, so
> I have enough horsepower, but I cannot seem to get Apache to use any of it.
> 
> In the Win32 thread model the modules like Mod_perl have to start a Mutex to
> keep state while the process runs, so that no other incoming request gets
> the CGI confused, isn't this sort of a backwards step for Apache to take?
> It all comes down to one little pipe, whereas the Unix Apache has multiple
> processes that can handle requests simultaneously.  Am I misinformed about
> how this works?
> 
> Any suggestions, other than install some flavor of Unix?  I am not out for
> some OS bashing war or any other type of flame fest, I want to make what I
> have work.
> 
> Please do not get me wrong, I could not have gotten this far without Apache
> and Mod_perl, IIS and CGI perl would not have come within a mile of this
> performance, unfortunately I need more.
> 
> Thanks
> 
> Dale
> 
> WinNT 4.0 SP3
> MSVC++ 5.0 SP2
> Perl 5.004_04
>