Hello!

We are using Apache as a front end for communication to a number of devices 
using TR69 (SOAP over HTTP). In order to resolve a problem with a particular 
device, I need to enable KeepAlive, but upon doing so I find that a number of 
our other devices drop connection to the server until they are rebooted. The 
reboot requirement is an acknowledge bug from the vendor, but I would like to 
resolve the problem with the device communication as it suggests capacity 
issues with our current configuration of Apache.

At present, with KeepAlive disabled, the command

netstat -plan|grep :80|wc -l

returns a value between 5000 and 5500. This drops dramatically if keepalive is 
enabled, to around 300 to 400.

At present, Apache is configured as:

Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 5

<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 1024
MaxClients 1024
MaxRequestsPerChild 0 #unlimited
</IfModule>

<IfModule worker.c>
StartServers 2
MaxClients 1000
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>

The issue appears to be that when I enable KeepAlive with this configuration 
Apache intermittently stops accepting connections on the socket. We found that 
before changing the httpd.conf file (we raised the max clients and 
maxrequestsperchild variables) and enabling KeepAlive meant that I was 
intermittently unable to telnet into the server on port 80, suggesting a 
capacity issue.

I am wondering how high would be an acceptable limit for these values, and if 
anyone had any other ideas for what might be causing this.

Thanks in advance!

Reply via email to