ログ解析スクリプトAWStats 6.0ドキュメント

 


ベンチマーク


AWStatsの更新プロセスは, 頻繁に実行する必要があります. このため, AWStatsの処理速度を理解し, その処理速度とあなたが必要とする更新速度とのバランスを考えて, 最適な更新間隔を設定する必要があります。
AWStatsの処理速度は, バージョンと設定内容で異なってきます.



一般的な設定のAWStats Ver.6.0のベンチマーク結果:

ハードウェア: Athlon 1 GHz / 256MB
ソフトウェア: Windows 2000 / Perl 5.8 (CygwinのPerl)
設定オプション: デフォルトの設定値を利用, LogFormat=1, DNSLookup=0, URLWithQuery=0, URLReferrerWithQuery=0, URLWithAnchor=0, プラグインなし
平均速度: 5,200行/秒
別の条件下でのベンチマークは、このページの下の方に示されています...



その他の知っておくべき重要な情報:

- ログファイルのサイズは, 行数の150倍 (NCSA common/CLFログファイル)から320倍 (NCSA extended/XLF/ELFログファイル)になります,
- 1,000訪問 = 8,000ページ(1訪問者が8ページを閲覧すると仮定) = 64,000行 (1ページ当たり8ヒットと仮定) = 20MBのログファイル => 15秒 (Athlon 1GHz, 標準的なPerl 5.8の場合)
- 履歴ファイル(ロブの分析状況を記録)のサイズは, 15000+90*x+100*yバイト程度になります(1ファイル/1ヶ月, xは1ヶ月あたりの一意な訪問者数, yはWebサイトのページ数)
警告! これらのデータは全て一般的なサイトの平均値です. WebサーバーやAWStatsの設定, Webサイトのコンテンツによってはこの法則から大幅に乖離する可能性があります.

DNSの逆引きの性能は, ログ解析ツールではなく, 利用するシステムやネットワーク, インターネットのパフォーマンスに影響されるため, ログ解析ツールのベンチマークを行う際には, DNSの逆引きを無効にされていることを覚えておいて下さい. また, DNSの逆引きは, ログ解析の処理時間の99%もを占めるのです!
チャートを見る際には、以下のような観点で見てください:
- ベンチマーク結果を参考に, イメージを現実に近づける
- あなたのWebサイトに適合した設定を行うための参考情報にする




AWStatsを上手に活用するための訪問者数別パラメーター設定例:


あなたのWebサイトの規模 Perlのバージョン 推奨パラメーター 推奨される更新頻度
(ログのローテーション頻度)
必要とされる空きメモリ** 更新時間***
DNSLookup*URLWithQueryURLReferrerWithQuery
0 - 1,000 訪問者/月 任意 0 (あるいは2) 0あるいは1 0あるいは1 1回/週
ログファイルサイズ : 0-1 MB
処理行数 : 2,000行
4 MB 1秒
1 0あるいは1 0あるいは1 1回/週
ログファイルサイズ : 0-1 MB
処理行数 : 2,000行
4 MB 2分
1,000 - 10,000訪問者/月 任意 0 (あるいは2) 0あるいは1 0あるいは1 1回/週
ログファイルサイズ : 1-10 MB
処理行数 : 2,000-20,000行
4-8 MB 1-10秒
1 0あるいは1 0あるいは1 1回/週
ログファイルサイズ : 1-10 MB
処理行数 : 2,000-20,000行
4-8 MB 2-10分
10,000 - 100,000訪問者/月 任意 0 (あるいは2) 0あるいは1 0あるいは1 1回/週
ログファイルサイズ : 10-100 MB
処理行数 : 20,000-200,000行
8-32 MB 10-120秒
1 0あるいは1 0あるいは1 1回/週
ログファイルサイズ : 10-100 MB
処理行数 : 20,000-200,000行
8-32 MB 10-50分
100,000 - 500,000訪問者/月 任意 0 (あるいは2) 0 0あるいは1 1回/6時間
ログファイルサイズ : 24-96 MB
処理行数 : 50,000-300,000行
16-92 MB 30秒-3分
10 0あるいは1 1回/6時間
ログファイルサイズ : 24-96 MB
処理行数 : 50,000-300,000行
16-92 MB 15分-60分
500,000 - 2,000,000訪問者/月 次節のActiveStatePerlについての情報を参照してください 0 (あるいは2) 00 1回/6時間
ログファイルサイズ : 96-384 MB
処理行数 : 300,000-1,200,000行
64-256 MB 3分-12分
2,000,000 - 4,000,000訪問者/月 次節のActiveStatePerlについての情報を参照してください 0 (あるいは2) 00 1回/6時間
ログファイルサイズ : 384-768 MB
処理行数 : 1,200,000-2,400,000行
256-512 MB 12分-24分
+4,000,000訪問者/月 次節のActiveStatePerlについての情報を参照してください この規模のWebサイトにはAWStatsは適切な選択ではありません. Analog(あるいはWebalizer)のような, 機能が少ない代わりに処理速度が高速なツールを試してみてください.

* 以下の場合、DNSLookupを"0 (もしくは2)"に設定します :
      - ログがDNSの逆引きが行われた状態になっている,
      - Webサイトに毎月250,000以上の訪問者が訪れる.
ノート: 国別レポートはgeoipプラグインが有効にされていれば, DNSの逆引きを有効にしないでも動作します(DNSの逆引きを行うよりも, 高速かつ正確に動作します).
** この数値は更新プロセスに必要とされる空きメモリ量であり, システムに搭載されているメモリ量ではありません!
警告: もしURLWithQueryあるいはURLReferrerWithQueryオプションを利用するのであれば, あるいは正しいURLQuerySeparatorsを設定しないと, この数値は劇的に向上します.
*** DNSLookupを1に設定した際の更新時間が非常に長いのは, DNSの逆引きの時間がコンピュータの速度に依存しないためです. 更新時間は, Athlon1GHz/256MB, Cygwin Perl 5.8, LogFormat=1の環境で, DNSLookupを0(あるいは2)に設定した際の所要時間です.


AWStatsを賢く利用するための重要なアドバイス:

- DNSLookupを無効に設定します(DNSLookupは1に設定されているはずです). 国別レポートを必要とする場合は, geoipあるいはgeoipfreeプラグインをDNSの逆引きの代用として利用するようにします. これらのプラググインを利用すると, より正確な結果をより早く, ネットワーク経由の問い合わせなしで得ることができます(DNSLookupが有効になっていると, ログの解析速度は40~100倍低下するので, 必要な場合にのみ利用してください). DNSの逆引きを行わず, geoipプラグインも利用しない場合, 国別レポートは動作はしますが, ログファイルの中のホスト名が解決済みである必要があります(そのようにWebサーバを設定する必要がありますが, Webサーバの動作速度が低下します). また, 結果はgeoipプラグインを利用した場合に比べるとより不正確になります.
- URLWithQuery, URLReferrerWithQuery, URLWithAnchor を慎重に利用します(これらのパラメータの意味がわからない場合は, 0を設定します). 同時に, あなたのWebサイトの文法をチェックして, URLQuerySeparatorsを正しく設定する必要があるかどうかを確認します. もし本当にURLWithQuery=1を利用する必要があるのであれば, URLWithQueryWithOnlyFollowingParametersあるいはURLWithQueryWithoutFollowingParametersが適切に設定されているかどうかを確認します.
- 最新バージョンのPerlを利用します(Ex. Perl 5.8はPer. 5.6よりも5%高速に動作します). また, 巨大なログファイルを扱う場合は, ActiveStatePerlよりも標準ディストリビューションのPerlを利用することも重要です. ActiveStatePerl 5.006(そしておそらくほかのバージョンも)には, メモリの利用の仕方に問題があり, すべてのメモリを食い尽くして解析が停止してしまうまで徐々に速度が落ちる場合があります. -showstepsオプションをコマンドラインに付加すれば, 速度の低下を確認することができます. ここで確認できる速度は, たとえ数ギガバイトの巨大なログファイルであったとしても, このページの上部の数値と同じような数値になるはずです!
- ログを循環させます(FAQ-SET500を参照). そして, AWStatsをより頻繁に起動させます(crontabもしくはスケジューラを利用します, FAQ-SET550を参照). より頻繁にAWStatsを起動させれば, AWStatsが新たに処理するログの行数は減少します. この対処は, 結果的にActiveStatePerlのメモリの問題も解決します(前項のアドバイスを参照).
- HostAliasesパラメータのリストが完全であることを確認します.
- 最新のAWStatsを利用します. たとえば, AWStats 6.0は5.9よりも15%程高速です.
- こだわりがある方は, Perlを標準以外のオプションを指定してリコンパイルするといいでしょう. たとえば, "use64bitint=define usemymalloc=y"を指定すると, 速度が10%程向上します.