SiteTracker8 ログのインポートに時間がかかる

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ファイルの制限で取り込むそうです。