当前位置:  开发笔记 > 编程语言 > 正文

如何在Linux中获取Apache的"每秒请求数"?

如何解决《如何在Linux中获取Apache的"每秒请求数"?》经验,为你挑选了4个好方法。

在Windows for ASP中,你可以得到它perfmon,但是......

如何在Linux中获取Apache的"每秒请求数"



1> Adam Franco..:

这是一个简短的bash脚本,我用来对请求率进行采样(根据dicroce建议wc -l在日志文件中使用).

#!/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



2> 小智..:

实时,还是可以使用mod_status?

显然,apache有一个顶级版本......



3> Wtower..:

总而言之,您可以使用mod_status和apachetop.

或者,您可以使用Adam Franco和Jon Daniel的漂亮脚本来实现外观.

如果您想查看一个临时日期和小时,可以发出以下命令:

grep "29/Oct/2014:12" /var/log/apache2/example.com.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c | awk '{ if ($1 > 10) print $0}'

替换为您感兴趣的日期和小时,并使用日志文件的正确pathfilename.

它将打印出如下内容:

1913 12:47
 226 12:48
 554 12:49
 918 12:50

这里有一篇很好的文章,有更多选项可以使用awk,cut和uniq命令的组合来获得类型的快速统计数据.



4> dicroce..:

您可以在访问日志中使用'wc -l'来获取行数(大致对应于请求数...).每分钟执行一次并减去最后一个值以获取delta ...

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有