2006年10月26日

[Namazu-devel-ja 1331] Re: mknmz の処理時間短縮

臼田です

Tadamasa Teranishi wrote:
> Yukio USUDA wrote:
>
>>> $ON_MEMORY_MAX は、その変数名から想像するようなメモリサイズとは
>>> 何ら関係ありません。当然、物理メモリサイズとの因果関係は何も
>>> ありません。

>>>
>> ・シェルで設定されたユーザーメモリ利用の制限値を超えると
>> Perl が止まる
>> ・対象ファイル数が多い際に Perl のスタック?が溢れ
>> Perl が止まる
>> ・上記の2件を防止するために連続して読み込んだファイルサイ
>> ズの合計が
>>  $ON_MEMORY_MAX に達したところで一時書き出しをしている。
>>
>
> これは中間ファイルを書き出すだけでは何の効果もありません。
> 何故なら中間ファイルを書き出しただけでメモリはフリーしませんから
> 処理するデータ量が多ければ、中間ファイルを書き出そうが、出さまいが
> 一切関係なく破綻します。
>
書き出しをした後に
%KeyIndex = ();
%KeyIndexLast = ();
%PhraseHash = ();
%PhraseHashLast = ();
としてメモリを一部開放しているので関係ないわけではありません。

> --checkpoint を付けた場合には、exec し直すので、メモリリークがあった
> 場合に意味はありますが、それもデバッグ用途の域を出ません。
>
--checkpoint はメモリリークが起きなければ使う必要がない
オプションと言うことですね。

>> 物理メモリサイズが増えてきているのを前提として OS, シェル,
>> Perl 等
>> の初期設定値も昔とは変わってきているのではないでしょうか。
>>
>
> というよりは、Namazu で処理するデータ量が想定よりもはるかに
> 多くなっているということでしょう。
>
> また、様々な用途に使われるので、デフォルトとして最適な値というもの
> を決定できなくなったという背景もあるでしょう。
>
利用形態により最適値は異なるし、環境も多様なのですが
現在の初期値はメモリ利用制限を厳しくコントロールされている
ユーザーやメモリが少ない場合向けのものということになります。
最近はメーリングリストに Out of memory の話題が出てこないので
ユーザー層にマッチしているかどうかは気になります。

>> そもそも $ON_MEMORY_MAX の値は Out of Memory 症状の
>> 原因との
>> 因果関係は少ない経験値のようなものです。
>>
>
> そうですね。
>
どのような場合に増やすのがよいのかとか
変更した際のメリット、デメリットをFAQに書くのが
よいのでしょうね。

臼田幸生

_______________________________________________
Namazu-devel-ja mailing list
Namazu-devel-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja

投稿者 xml-rpc : 2006年10月26日 12:57
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/48272
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。