![]() |
ログ解析スクリプトAWStats 6.0ドキュメント |
| あなたのWebサイトの規模 | Perlのバージョン | 推奨パラメーター | 推奨される更新頻度 (ログのローテーション頻度) |
必要とされる空きメモリ** | 更新時間*** | ||
| DNSLookup* | URLWithQuery | URLReferrerWithQuery | |||||
| 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分 |
| 1 | 0 | 0あるいは1 | 1回/6時間 ログファイルサイズ : 24-96 MB 処理行数 : 50,000-300,000行 |
16-92 MB | 15分-60分 | ||
| 500,000 - 2,000,000訪問者/月 | 次節のActiveStatePerlについての情報を参照してください | 0 (あるいは2) | 0 | 0 | 1回/6時間 ログファイルサイズ : 96-384 MB 処理行数 : 300,000-1,200,000行 |
64-256 MB | 3分-12分 |
| 2,000,000 - 4,000,000訪問者/月 | 次節のActiveStatePerlについての情報を参照してください | 0 (あるいは2) | 0 | 0 | 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%程向上します.