fre*_*wra 8 performance-monitoring performance-tuning apache-2.2
我想测量生产环境的合理压力测试结果。
如何通过分析apache日志来衡量req/sec?
apache2.2
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
Run Code Online (Sandbox Code Playgroud)
我可以使用 %t 和 %D 参数吗?
小智 21
这篇很棒的文章对我帮助很大...
我创建了一组准备好的命令,用于分析 apache 日志:
每小时请求
cat access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":00"}' | sort -n | uniq -c
按日期每小时请求
grep "23/Jan" access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":00"}' | sort -n | uniq -c
每小时通过 IP 请求
grep "XX.XX.XX.XX" access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":00"}' | sort -n | uniq -c
每分钟请求数:
cat access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c
日期的每分钟请求数:
grep "02/Nov/2017" access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c
url 每分钟请求数:
grep "[url]" access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c
每 IP 每分钟
grep "XX.XX.XX.XX" access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c
希望它会帮助任何正在寻找它的人......
您可以实时使用mod_status。您还可以计算给定时间段内 access.log 中的行数并计算出速率。像这样的东西
#!/bin/bash
LOGFILE=/var/log/apache2/access.log
STATFILE=/var/tmp/apachestats
START=$(wc -l "$LOGFILE" | awk '{print $1}')
PERIOD=10
PRECISION=2
sleep "$PERIOD"
while true
do
HITSPERSECOND=0
HITS=$(wc -l "$LOGFILE" | awk '{print $1}')
NEWHITS=$(( HITS - START ))
if [[ "$NEWHITS" > 0 ]]
then
START=$HITS
HITSPERSECOND=$(echo -e "scale=$PRECISION\n$NEWHITS / $PERIOD" | bc -l )
fi
echo "$(date) rate was $HITSPERSECOND" >>"$STATFILE"
sleep "$PERIOD"
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12986 次 |
| 最近记录: |