I am trying to assess the performance of my web server which has Linux and Apache. I tried load testing using JMeter, and gradually increased the number of requests and recorded the response time as well as resource utilization stats. The response time increased after 40 hits per minute, however, the resource utilization remained same! CPU, Memory, Network, IO resources were under utilized even when I tried lots of requests resulting in slow response time. To be specific, the response time was good when the total number of requests per minute were under 6000, and when we tried out 8000 requests per minute the response time increased by 50%.
Info of the server:
Hardware: 1 Core with 2 GB RAM
OS: Ubuntu 12.04 LTS Server Edition
.
Application stack:
Apache, PHP
Apache configuration w.r.t number of clients:
<IfModule mpm_prefork_module>
StartServers 50
MinSpareServers 50
MaxSpareServers 100
MaxServers 600
MaxClients 600
MaxRequestsPerChild 0
</IfModule>
I am not clear, why these resources are under utilized. Could you please help me on what should I do so that I can use the resource utilization shoots up?
Here is the significant part of apache configuration:
LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 5
<IfModule mpm_prefork_module>
StartServers 50
MinSpareServers 50
MaxSpareServers 100
ServerLimit 600
MaxClients 600
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
DefaultType None
HostnameLookups Off
Include mods-enabled/*.load
Include mods-enabled/*.conf
Include httpd.conf
Include ports.conf
Include conf.d/
Include sites-enabled/