web-dev-qa-db-ja.com

Apacheログを分析してreq / secを測定する方法

本番環境での正当化ストレステストの結果を測定したいと思います。

Apacheログを分析してreq/secを測定する方法は?

Apache2.2

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %D" combined

%tおよび%Dパラメーターで実行できますか?

4
freddiefujiwra

リアルタイムで 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
2
user9517

この素晴らしい記事は私を大いに助けました...

http://www.inmotionhosting.com/support/website/server-usage/view-level-of-traffic-with-Apache-access-log

Apacheログの分析に使用する一連の準備済みコマンドを作成しました。

1時間あたりのリクエスト
cat access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":00"}' | sort -n | uniq -c

日付別の1時間あたりのリクエスト
grep "23/Jan" access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":00"}' | sort -n | uniq -c

IPによる1時間あたりのリクエスト
grep "XX.XX.XX.XX" access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":00"}' | sort -n | uniq -c

1分あたりのリクエスト数:
cat access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c

日付の1分あたりのリクエスト数:
grep "02/Nov/2017" access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c

URLの1分あたりのリクエスト数:
grep "[url]" access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c

1分あたりのIPあたり
grep "XX.XX.XX.XX" access.log | cut -d[ -f2 | cut -d] -f1 | awk -F: '{print $2":"$3}' | sort -nk1 -nk2 | uniq -c

それがそれを探している人の助けになることを願っています...

5
Wazime

awstat のようなツールを使用するのはどうですか。

手動で行うには、ログエントリ(リクエスト)をカウントしてから、最初と最後のリクエストの間の秒数で除算します。したがって、平均req /秒を取得します。

1
Khaled

比較的短いパフォーマンステストを実行する場合は、 apachetop を使用して、リアルタイムでreqsまたはbytes/secを監視できます。 LinuxおよびUnixのtopコマンドに似ていますが、Apacheにビューを提供します。これは、アクセスログファイルを調整することによって機能します。

それがあなたの目的にとって十分に正確であるかどうかはわかりませんが、それは間違いなくあなたにいくつかの素晴らしい球場の数字を与えます。

1