SiteTracker8 ログのインポートに時間がかかる
- 2007.10.11
- Webマスター
SiteTracker(サイトトラッカー)をバージョン7からバージョン8にアップするときに、ログをインポートし直した。
そしたら、2002年から2007年6月までの、5年半のログをインポートするのに3ヶ月かかりました。3日じゃありません。3ヶ月です。
バージョンアップする度に、3ヶ月間、新しいバージョンのソフトが使えないということになる(笑)。
■合計ログファイルサイズが200MB以下、ファイル数は100個以下にする
なんとかならんもんかと思って、アスキーのサポートに聞いたところ、
●「1回の更新でインポートするログファイルの合計サイズを200MB程度以下にする」
●「ログファイル数は、100個以下にする」
と良いのだそうです。
Sun V440 (メモリ8GB)のマシンなのに、わざわざ200MB以下にログを小分けにしなければならないのは、悲しい。
ま、仕方ないので、
2002.log
2003.log
3004.log
2005.log
2006.log
と年ごとのファイルにしてあるものを
200201.log 200202.log 200203.log 200204.log 200205.log …
と小分けにすることにした。
各ファイルが200MBを越えていたら、更に小分けにする必要があるが、
「インポート時にエラーが発生しなければ200MBを越えていてもかまわない」
そうだ。OSやマシンスペックによって異なるとのこと。ターミナルで nettracker [profile] -update して、エラーが発生しなければ良いそうだ。
■1日のログファイルが1MBの場合
「一度にインポートする量が200MB程度以下」
なので、一日ごとにログファイルが分かれていて、それぞれが1MBのファイル
20070101.log 1MB
20070102.log 1MB
20070103.log 1MB
…
の場合、
1MB × 200日分 = 200MB
となる。
200日分以上をまとめてインポートできそうだが、ログファイル数が100を越えているので、100日分だけインポートすること。
■1ヶ月のログファイルが60MBの場合(自分のケース)
200301.log 60MB
200302.log 60MB
200303.log 60MB
200304.log 60MB
…
60MB × 3ヶ月分 = 180MB
となる。
3ヶ月分ずつ、インポートすること。
■ログの指定方法
プロファイル編集で、
/path/to/logs/2003/*
のように正規表現を利用して指定する方法が簡単。
インポートする対象のログファイル。
/path/to/logs/2003/200301.log
/path/to/logs/2003/200302.log
/path/to/logs/2003/200303.log
インポートしないファイルは一時的に他のディレクトリに移動しておく。
/path/to/logs/2003/tmp/200304.log
/path/to/logs/2003/tmp/200305.log
/path/to/logs/2003/tmp/200307.log
…
このようにログを置いておけば、1月から3月までがインポートされ、tmp以下は処理されない。
インポート処理が終わったら、tmpディレクトリからまた3ヶ月分を取り出してインポート処理を続ける。
■インポート中のメッセージ [*] は、何か?
Importing 2003年 10月... 59% 64% 69% [*] 75% 80% [*] 85% 90% [*] 96% (100%)
のように [*] が表示されることがある。
これは、ログファイルのインポートに時間がかかり、進行パーセント表示を行う代わりに、[*] を表示するそうだ。処理は正常に行われているので心配しなくてよい。
もし、表示がこのように長く続く場合は、ログファイル合計サイズを200MB以下にする。ログファイル数を100個以下にした方がよい。[*] を吐き出すという無駄な処理にCPUを使うのはインポート時間を長引かせるだけだから。
[*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*] [*]
ちゃんと計測していないが、 [*]マークが続いたときは、ログファイルを小さくしてインポートし直した方が体感的にだいぶ早かった。
■SiteTrackerサイトトラッカーのコマンドライン操作
更新処理を行う。
./nettracker プロファイル英語名 -update
プロファイルから解析済みデータを削除する。
./nettracker プロファイル英語名 -clear
処理を止める。root権限で、
./nettracker プロファイル英語名 -abort
■gzipで固めてあるログファイルの容量
解凍したときの生ログのファイルサイズで計算すること。
例えば、gzファイルのサイズが、
200301.log.gz 6MB
200302.log.gz 6MB
200303.log.gz 6MB
の場合、解凍したときに
200301.log 60MB
200302.log 60MB
200303.log 60MB
となれば、18MBではなく、180MBのログファイルと換算して、ログファイルをインポートする。
それにしても、200MB、100ファイルまでなんていう制限は低すぎないか…?
ちなみにアスキーさんに聞いたら、Oracle版SiteTrackerでも200MB、100ファイルの制限で取り込むそうです。
-
前の記事
Apple LiveType メモ 2007.10.06
-
次の記事
CGIが動かない “Internal Server Error” “Premature end of script headers” 2007.10.14