2.4 httpd process balancing

Troy Carpenter troy at carpenter.cx
Mon Sep 10 23:08:13 CEST 2012


So after some testing and confirming that I am using the prefork model, I've
made the following changes based on reading the Apache performance
documentation (http://httpd.apache.org/docs/2.2/misc/perf-tuning.html). I
don't know how different they are from the Kolab defaults. I've removed
comments from the directives here:

KeepAlive On
KeepAliveTimeout 5
MaxKeepAliveRequests 100

<IfModule prefork.c>
StartServers       5
MinSpareServers    5
MaxSpareServers    6
ServerLimit        50
MaxClients         50
MaxRequestsPerChild  1000
</IfModule>

For me, turning on KeepAlive greatly improved throughput with minimal
increase in the number of running servers.  Most of the time my server count
hovered between 10 and 20 with web-admin, roundcube, and activesync all
being hit at the same time.  Obviously, from the MaxClients setting, you can
see this is for a very small site, so adjust your limits accordingly.

Also, before adjusting the numbers above, I saw a steady progression towards
MaxClients, which would peg at 51 and wouldn't serve up any more requests.
After adjusting the MaxRequestsPerChild parameter down from 10000 to 1000, I
saw a rapid drop-off of the client process count after heavy web usage, and
everything was quite happy still.

I hope that provides some guidance to anyone else having similar process
issues. I will continue to monitor the process count to see how this
performs long term.


-----Original Message-----
From: kolab-users-bounces at kolab.org [mailto:kolab-users-bounces at kolab.org]
On Behalf Of Troy Carpenter
Sent: Thursday, August 30, 2012 10:25 PM
To: kolab-users at kolab.org
Subject: 2.4 httpd process balancing

I'm having a hard time finding the right balance of http server/thread
settings in the httpd.conf file in kolab 2.4.  I was using the default
install, and lately I found that the httpd processes overran the system and
eventually caused amavisd failures, which resulted in mail delivery
failures.  This happened after I added about 6 activesync devices.  I've
throttled the httpd processes way back, but now my mobile devices and web
users are in contention and many times can't connect.

I need some guidance into a balanced set of numbers.  I am running kolab in
a virtual machine on a dual core system.  Allocated memory is about 2.5 gig,
with the same amount of swap.  I only have about 10 users, so this not a
large deployment.

Right now, here's what I have:

<IfModule prefork.c>
StartServers       5
MinSpareServers    2
MaxSpareServers    2
ServerLimit       10
MaxClients        10
MaxRequestsPerChild  4000
</IfModule>

<IfModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     10
MaxSpareThreads     10
ThreadsPerChild     25
MaxRequestsPerChild  4000
</IfModule>

Even with the settings above, the mobile devices eventually can get to the
server and exchange mail...it's just not quite in real-time.

Thanks,
Troy Carpenter

_______________________________________________
Kolab-users mailing list
Kolab-users at kolab.org
https://www.intevation.de/mailman/listinfo/kolab-users




More information about the users mailing list