I have a moodle site. Currently we have aprox. 6000-7000 visitors/day. Normally 150-200 request per second arrive to our server. At the begining we divide the load distributing into two servers, the fisrst one (3.2 GHz box with 2 GB) for application and another (4x3.2 GHz and 16 GB Box) for database and moodledata. In addition we have almost 800 virtual classrooms and 700 teachers each one per classroom. We have registered almost 17000 students that we consider potential users for our site. Under this configuration the first box arrive to 95% of cpu usage nd the second one (db server) remains in 40% cpu load. Performance became so bad because there are many http server threads so we decided to run all (application and database) our stuff into our strong machine (4x3.2 cpus and 16 GB). Actually the box arrives to 90% of cpu load and even it attends request we have so many claims that response time is very bad, especially at peak times (10:00 - 12:00 A.m | 2:00 - 4:00 P.M) and saturdays when all ours students seem to agree for use intensively moddle platform.
Our httpd conf file have the following parameters
*******************************************************************************
MaxKeepAliveRequests 250
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 10
##
## Server-Pool Size Regulation (MPM specific)
##
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 16
MinSpareServers 16
MaxSpareServers 17
********************************************************************************
We are redesigning some of our contents because this is another factor that is affecting our performance. Like system administrator I have probed some configurations until arrive the above that seems to be the best, but I am not glad with the performance of our machine. I have also noted that even proccesor load is fixed in 90% all the time memory is under 5.0 GB's used and the rest is free. This lead me to think that something in my configuration goes bad.
If someone could help us and bring some ideas for improving performance it will be well recognized. Now we consider to upgrade our machine and create a topology that wil include a 2-3 web farm for application and a database cluster.
I expect and thanks your help