perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <>
Subject Re: Concurrency with mod_perl 2.01 on Windows
Date Tue, 07 Mar 2006 04:57:30 GMT
One thing that causes a significant performance degredation on Win32 is
fixed, we are looking at the second issue.

In APR, unbuffered writes were system-level flushing.  I believe this
had to do with some early network testing and multiple-writer concurrency
issues, but the end result is unacceptable, and you may be seeing this.
2.0.56 and 2.2.1 will likely incorporate this fix.

The other is multi-process concurrency using file level locking from byte
0 to -1 (unlimited).  This too has proven very slow, although I'm not yet
sure how much the previous issue impacted this apparent performance.

Effectively, on Unix write() is atomic, and in append mode, safe across
processes/threads.  On win32, we need to emulate this behavior.  That said,
just be aware that we are researching this.

The patch to the already committed quirk for 2.0 windows is here;

Let us know if this alters your observed performance.



Rod Morris wrote:
> Hi all,
> I'm porting some old perl code to a new installation of Apache/2.0.54 
> (Win32) mod_perl/2.0.1 on Windows 2003 Server. In testing some file 
> locking code, I noticed that response seemed very slow when I dumped in 
> multiple jobs via multiple browsers to the server. I added a timer and 
> saw the scripts waiting for one to finish before the next started as if 
> they were queued waiting for the server.
> I've got another server running freeBSD and it's set up to run mutilple 
> instance of Apache which seems to deal with this. But on Windows, I 
> haven't added anything for this and it comes up by default with 2 
> instances of Apache.
> It's my impression that threading should be used to deal with mutilple 
> requests for one script, but that's not what I'm seeing. I'm seeing one 
> script wait and then start when the last one finishes. MY script just 
> gets the time, sleeps and then gets the time again.
> Am I missing a configuration option or do I need a different version of 
> perl? I installed for the standard combined Apache/mod_perl distribution.
> Thanks,
> Rod Morris

View raw message