Hi,
Here follows the version and build parameters of my Server. I am not much expertise in Apache, I think I am using PREFORK.
But both worker and prefork is enabled here.
Server version: Apache/2.2.3
Server built: Nov 12 2008 10:40:14
Server's Module Magic Number: 20051115:3
Server loaded: APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Thanks for your time.
Greetings ....
BipinDas
From: Prasanna Ram Venkatachalam [mailto:vpram86@xxxxxxxxx]
Sent: Wednesday, May 20, 2009 10:11 AM
To: users@xxxxxxxxxxxxxxxx
Subject: Re: [users@httpd] Apache hangs when maximum connection beyond 2000
First we need to figure out which model your Apache is using. If it uses worker this setting is also fine! Please remember, in worker ServerLimit is the maximum processes that can run simultaneously and ThreadsPerChild is the threads running inside each process! Since in worker model, each thread will service a request, we got a MAX of ServerLimit x ThreadsPerChild threads having connections and servicing requests. So we can put any combination of these to achieve our goal. 50 and 41 is just an example i gave! :)
<Note: if your apache is runing on windows, These two models will not be there. Apache in Windows uses WINNT model and UNIX flavors use either of prefork or worker)
On Wed, May 20, 2009 at 12:28 PM, BipinDas-Gmail <bipinkdas@xxxxxxxxx> wrote:
Thanks Prasanna for your valuable feedback. So you recommend to change the Serverlimit to 41 and Threads per child is 50 in worker?
My goal is to set up this server for serving around 2000 connections simultaneously with minimum load. Any more changes to be needed ?
Thanks again.
Greetings ....
BipinDas
From: Prasanna Ram Venkatachalam [mailto:vpram86@xxxxxxxxx]
Sent: Wednesday, May 20, 2009 4:47 AM
To: users@xxxxxxxxxxxxxxxx
Subject: Re: Apache hangs when maximum connection beyond 2000
Also in prefork, MaxClients is 256 (ServerLimit also) which means at max only 256 processes can run and serve 256 connections simultaneously. In your case 2000 well exceeds this. (i personally suggest worker rather than prefork since for 2000 connections even if you change the settings, processes running in the system would shoot up unneccessarily taking more memroy).
In which model your apache is running now?
Regards
Prasanna RamOn Wed, May 20, 2009 at 7:11 AM, Prasanna Ram Venkatachalam <vpram86@xxxxxxxxx> wrote:
ServerLimit is 21 in worker and ThreadsPerChild is 25. So that means at MAX, 21 httpd will be running with with 25 threads each serving requests. I don't think it will serve 2000 connections simultaneously. Can you change it to 50 and 41 and see whether it works? (just a thought)
Regards
Prasanna Ram
On Wed, May 20, 2009 at 2:13 AM, BipinDas-Gmail <bipinkdas@xxxxxxxxx> wrote:
Hello Everybody
I have a webserver running on Dell Poweredge Xeon Processor with 4GB Ram. There is only one website a learning management system called
Moodle. Configuration of Apache is as follows.
This is the Prefork Module.
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
This is the Worker Module
<IfModule worker.c>
StartServers 2
ServerLimit 21
MaxClients 2000 (This was before 256,I changed to 2000)
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
When the output “netstat -tn | wc -l “ goes beyond the 2000 the load of the server will go high say above 100 and server will hang down.
I need to avoid this. So what will be the configuration to be changed to increase the client connection above this limit. Because students
are accessing this site across the country simultaneously from NAT mode.
Please help,Thanks in advance.
Greetings ....
BipinDas
--
Prasanna Ram