How to get “requests per second” for Apache in Linux?

前端 未结 9 679
情书的邮戳
情书的邮戳 2021-01-30 17:53

In Windows for ASP, you can get it perfmon, but...

How to get \"requests per second\" for Apache in Linux?

9条回答
  •  有刺的猬
    2021-01-30 18:50

    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  -l "
    
    # 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
    

提交回复
热议问题