[Namazu-users-ja 1059] Re: gcnmz が非常な時間を要するようになった

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2008年 4月 6日 (日) 21:13:17 JST


寺西です。

野宮 賢 / NOMIYA Masaru wrote:
> 
> 寺西さん> Base64 の記号は、普通は '+', '-', '=' の三種類ですので、これらの文字が
> 寺西さん> 削除されるだけです。
> 
> ん? '/' も記号ではないのでしょうか?

'-' は '/' のミスです。

> 寺西さん> summary であることはご理解いただいたようですが、全体の意味はまだ理解
> 寺西さん> されていないような...。
> 
> よく解りませんが?
> 廣瀬さんの方法でも,base64 なパートに含まれるアルファベットや数字がIndex作
> 成対象になる,とは思っていますが?

そもそもあのパッチで何がしたいのでしょう?

> これをやらなくとも,NMZ.field.summary 等の作成の対象は,<body>と</body>の間
> のものに限定される,という意味で仰っているのでしょうか?
> そういう気もしなくはないのですが.

パッチはそもそも、HTML のある部分に要約に出したい文字列を入れておいて、
その部分を mknmz で要約に採用しようというものです。
それを <body> から </body> の間に変更することの意味は?

確かにそのパッチを使うと、処理が異なるために要約は異なるものが作られは
しますが、このパッチを使って何がしたいのでしょう。

> それにしましても,$ON_MEMEORY_MAX の変更でこれ程の効果が現れるというのは,
> 驚きでした.

処理する文書の総量が多いと顕著になります。
ですので、インデックスを分けると速くなるわけです。

> 寺西さん> # ただし、設定値を大きくすると消費メモリは多少なりとも増えますが。
> 
> 「Namazuの豆知識」を読むと,搭載メモリーの 1割 が目安かと思いましたが,そう
> ではないのですね.

全く違います。

$ON_MEMORY_MAX はかなり問題のある設定パラメータであり、名前も不適切で
誤解をまねいています。
このパラメータで消費するメモリ量を制御することはほとんど不可能です。

漠然と $ON_MEMORY_MAX の値を増やすと、消費するメモリ量は増えますと
としか言えません。
(データ依存のため、増え方や増える量を算出することはほぼ不可能です。)

ですので、主メモリの何割とかも算出できません。当然、主メモリの何倍
でも大丈夫ということもありえます。

> 寺西さん> この値は、処理する文書ファイルの総量で決めると良いでしょう。
> 
> 具体的に,文書ファイル総量とどのような兼ね合いで $ON_MEMORY_MAX を決めれば
> 良いのか,をお教え下さいませんか?
> 因みに,小生の現在の文書ファイル総量は,1.2GB です.

処理した文書ファイルのサイズが $ON_MEMORY_MAX を超えた時に、中間
インデックスを書き出します。

多少の誤差があるにしても、$ON_MEMORY_MAX が 300MB なら 1.2GB の文書を
処理すると、4, 5回インデックスの書き出しが行われることになります。

インデックスの書き出しには時間が必要で、書き出す度に1回の書き出し時間が
増加します。
(これはインデックスを分けた場合に処理速度が上がる理由でもあります。)

インデックスの書き出し回数を減らすことで、mknmz の処理時間を短縮する
ことが可能です。

$ON_MEMORY_MAX が 50MB なら 24回程度のインデックスの書き出しでしたので
これが4,5回に減れば数十%速度が速くなることはありえます。

$ON_MEMORY_MAX を 1.5GB ぐらいにすればインデックス書き出しは1回で
済むので、それ以上に値を増やしても速度は変化しないでしょう。
この時、内部で消費されるメモリ量はどれくらいかはわかりませんが、この
消費メモリが十分小さければ、mknmz で処理することが可能ということに
なります。
逆にかなり大きくなってしまった場合は、メモリ不足でエラーが発生する
こともあります。

> 今一度 gcnmz を走らせ,それが膨大な時間を要するようであれば,小生の今の力量
> では,毎晩 mknmz を走らせる方がベターという結論になる,とは思います.

その場合は、毎晩 mknmz を走らせるだけではダメで、毎晩インデックスを
新規に作り直す必要があります。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E



Namazu-users-ja メーリングリストの案内