You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Jean-Jacques Clar <JJ...@novell.com> on 2004/01/07 22:49:15 UTC

2.0.48 worker mpm on RH3 NPTL results

Attached are 2.0.48 numbers on RH AS 2.1 and 3.0.
Apache is build with worker MPM and default options on both versions.
 
C:
Apache is servicing more requests per sec on 2.1 on 1 and 2 CPUs, 3.0
is picking up the slack between 2 and 4 CPUs.
Prefork still serving static requests faster than worker (6300 req/sec
on RH 2.1 on 8 CPUs). 
I was expecting better results on 3.0, 1 and 2 CPUs results are
disapointing to me.
 
Q:
No tweaking was done on both versions of RH.
Should I try using special config parms that will help the NPTL?
 
JJ

Re: 2.0.48 worker mpm on RH3 NPTL results

Posted by Joe Orton <jo...@redhat.com>.
On Wed, Jan 07, 2004 at 02:49:15PM -0700, Jean-Jacques Clar wrote:
> Attached are 2.0.48 numbers on RH AS 2.1 and 3.0.
> Apache is build with worker MPM and default options on both versions.
>  
> C:
> Apache is servicing more requests per sec on 2.1 on 1 and 2 CPUs, 3.0
> is picking up the slack between 2 and 4 CPUs.
> Prefork still serving static requests faster than worker (6300 req/sec
> on RH 2.1 on 8 CPUs). 
> I was expecting better results on 3.0, 1 and 2 CPUs results are
> disapointing to me.
>  
> Q:
> No tweaking was done on both versions of RH.
> Should I try using special config parms that will help the NPTL?

HyperThreading enabled or not when limited to 1/2 CPUs, if these are HT
CPUs?  That can make a difference (either way) when benchmarking IIRC.

Regards,

joe

Re: 2.0.48 worker mpm on RH3 NPTL results

Posted by Brian Akins <ba...@web.turner.com>.
In our testing RH3 was horrible -- worse than 2.1.   However, a system 
with a stock 2.6 kernel with glic2.3.3 with nptl performed comfortable 
better than 2.1

YMMV

-- 
Brian Akins
Senior Systems Engineer
CNN Internet Technologies

Re: 2.0.48 worker mpm on RH3 NPTL results

Posted by Scott Lamb <sl...@slamb.org>.
On Jan 12, 2004, at 10:45 AM, gregames@apache.org wrote:
> What did you use for ThreadsPerChild?  The default?  It's 25.  The 
> reason I ask is I did some scalability measurements maybe a year ago 
> and saw a lot of CPU usage in linuxthreads with a high number (maybe 
> 1000) for ThreadsPerChild.  It was in some pthread mutex unlock 
> function, doing a serial search for the highest priority thread to 
> wake up.  This is pointless in our case because all the worker threads 
> are the same priority.  I'm hoping that this problem is fixed in the 
> new pthread library, but haven't verified it.

NPTL, for better or for worse, does not honor priorities. Quoting from 
<http://people.redhat.com/drepper/nptl-design.pdf>:

Realtime support is mostly missing from the library implementation. The 
system calls to select scheduling parameters are available but they 
have not effects. The reason for this is that large parts of the kernel 
do not follow the rules for realtime scheduling. Waking one of the 
threads waiting for a futex is not done by looking at the priorities of 
the waiters.

Scott Lamb


Re: 2.0.48 worker mpm on RH3 NPTL results

Posted by gr...@apache.org.
Jean-Jacques Clar wrote:

> Attached are 2.0.48 numbers on RH AS 2.1 and 3.0.
> Apache is build with worker MPM and default options on both versions.

Thanks for posting these measurements.  I was happy to see that performance 
stays pretty flat as the system got overloaded.  The AS 3.0 8 CPU curve sags a 
little but it's not too bad.

What did you use for ThreadsPerChild?  The default?  It's 25.  The reason I ask 
is I did some scalability measurements maybe a year ago and saw a lot of CPU 
usage in linuxthreads with a high number (maybe 1000) for ThreadsPerChild.  It 
was in some pthread mutex unlock function, doing a serial search for the highest 
priority thread to wake up.  This is pointless in our case because all the 
worker threads are the same priority.  I'm hoping that this problem is fixed in 
the new pthread library, but haven't verified it.

> C:
> Apache is servicing more requests per sec on 2.1 on 1 and 2 CPUs, 3.0 is 
> picking up the slack between 2 and 4 CPUs.
> Prefork still serving static requests faster than worker (6300 req/sec 
> on RH 2.1 on 8 CPUs).

I'm very curious to know why prefork is beating worker.  Could you get a profile 
of the CPU usage for both cases?  I've had good luck with oprofile.  I had a 
little trouble compiling its kernel module on RH AS 2.1 due to 2.5 kernel 
features that RedHat backported, but you can edit oprofile's module/compat.h to 
get around that.

Greg