In Windows for ASP, you can get it perfmon, but...
How to get "requests per second" for Apache in Linux?
With this number of instantiated workers, Apache can handle almost 160 requests per second without increasing the number of workers. Assuming the number of requests and the CPU time are linearly dependent, this leads to CPU consumption of about 30%.
Requests are handled in parallel by the web server (which runs the PHP script). Updating data in the database is pretty fast, so any update will appear instantaneous, even if you need to update multiple tables.
Apache comes with 40-100 max threads. It can be increased to allow more threads to be handled at the same time. The application should be monitored before making any changes to it. Based on the response, try to change "ThreadsPerChild" and "AcceptThreads" accordingly.
Here is a short bash script I made up to sample the request rate (based on dicroce's suggestion of using wc -l
on the log file).
#!/bin/sh ############################################################################## # This script will monitor the number of lines in a log file to determine the # number of requests per second. # # Example usage: # reqs-per-sec -f 15 -i /var/www/http/access.log # # Author: Adam Franco # Date: 2009-12-11 # License: http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL) ############################################################################## usage="Usage: `basename $0` -f <frequency in seconds, min 1, default 60> -l <log file>" # Set up options while getopts ":l:f:" options; do case $options in l ) logFile=$OPTARG;; f ) frequency=$OPTARG;; \? ) echo -e $usage exit 1;; * ) echo -e $usage exit 1;; esac done # Test for logFile if [ ! -n "$logFile" ] then echo -e $usage exit 1 fi # Test for frequency if [ ! -n "$frequency" ] then frequency=60 fi # Test that frequency is an integer if [ $frequency -eq $frequency 2> /dev/null ] then : else echo -e $usage exit 3 fi # Test that frequency is an integer if [ $frequency -lt 1 ] then echo -e $usage exit 3 fi if [ ! -e "$logFile" ] then echo "$logFile does not exist." echo echo -e $usage exit 2 fi lastCount=`wc -l $logFile | sed 's/\([0-9]*\).*/\1/'` while true do newCount=`wc -l $logFile | sed 's/\([0-9]*\).*/\1/'` diff=$(( newCount - lastCount )) rate=$(echo "$diff / $frequency" |bc -l) echo $rate lastCount=$newCount sleep $frequency done
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With