4

I am running Apache 2 on a Linux Debian machine (Kernel 2.6, Debian 5) with 3GB of RAM. This server should handle approximately 200 Million requests per 24 hours. Can anyone tell me what should be the values of the following mpm_prefork parameters that can suite this load ? The parameters I am seeking to set are:

  1. ServerLimit
  2. StartServers
  3. MinSpareServers
  4. MaxSpareServers
  5. MaxClients
  6. MaxRequestsPerChild

I would also like to know what should be the value of: MaxKeepAliveRequests parameters.

10x in advance

1 Answer 1

2

You are going to run out of ram before you will be able to server a Million requests. How large are you apache client processes? I bet over 10MB (probably 25MB). You server could probably only handle 250 clients if the clients were only 10MB.

Might try lighttpd with fast-cgi.

To answer you question you would need to edit the mpm.conf files /etc/apache2/modules.d/00_mpm.conf for me, but im on gentoo so it will be a bit diffrent depending on the distro of linux you are using. But in that config there is a secion for prefork

Here is mine for a server with 12Gb of ram. (and we load balance the sites of 20 identical servers)

<IfModule mpm_prefork_module>
        StartServers            100
        MinSpareServers          5
        MaxSpareServers         200
        ServerLimit             375
        MaxClients              375
        MaxRequestsPerChild      0
</IfModule>
6
  • I would like to mention that the purpose of this server is to log the requests to the access log so they would in turn be downloaded by some other server and get written in database. The requests them selves don't invoke any server side scripts what so ever ... The average memory of each apache2 process is approx. 9 MB
    – explodec14
    Jul 23, 2010 at 14:41
  • Thaks for the comment. Its hard to tell sometimes if the requesters doesn't under stand what they are asking for or are they in some crazy special situation that would just take too long to explain. What Distro of linux are you using? Jul 23, 2010 at 14:43
  • I am using Debian. I would like also to mention again that this server purpose is only to log these request. and that all there is to it.
    – explodec14
    Jul 23, 2010 at 14:47
  • I don't know if i would go about logging the request by directing to clients through an apache server. Why not have a server scrape the access_log from the other webservers? Jul 23, 2010 at 14:51
  • @The Digital Ninja:I FORGOT TO SAY THAT THIS SERVER IS ONE OF TWO IDENTICAL SERVERS AND BOTH OF THEM BEHIND LOAD BALANCER !!!
    – explodec14
    Jul 23, 2010 at 14:52

You must log in to answer this question.