Namazu-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Too many open files



臼田です。

金城 尚志 wrote:
> Yukio USUDA さんは書きました:
> >mknmzrc の $ON_MEMORY_MAX はどれくらいの数値でしょうか?
>  $ON_MEMORY_MAX   = 5000000;
> にしてあります。デフォルトの数値よりも半分にしてあります。
> 物理メモリは255MBぐらいです。
> ON_MEMORY_MAXの値については特に理由はありません。
> 適当な値はどれぐらいなんでしょうか?

checkpointが有効になっていると
読み込んだファイルのサイズの小計がON_MEMORY_MAXの値に
到達するたびにmknmzが再起動されます。

pdfファイルのサイズはテキストファイル等より大きいので
あまり小さい値にしておくと頻繁に
「チェックポイントに到達しました。mknmz を再実行します...」
というメッセージが現れると思います。
どれくらいの頻度で現れていますか?
物理メモリが255MBあるのでしたらもう少し大きめの値でもよいの
ではないでしょうか?
再起動時の初期化処理の負荷もあるので再起動頻度が高いのであ
れば実行時間がだいぶ長くなっていると思います。

> Yukio USUDA さんは書きました:
> >write_index_sub() からreturnする前に
> >明示的に
> >   close($fh_tmp_i);
> >   close($fh_tmp_w);
> >   close($fh_i);
> >   close($fh_ii);
> >   close($fh_w);
> >   close($fh_wi);
> >としてクローズさせたら良くなるのかも?
mknmzの2360行目ぐらいから始まるサブルーチンの
最後(2460行目付近)の
    return $key_count;
の直前に入れてファイルを陽にクローズさせてはどうかと思っていた
のですが、

checkpointでmknmzそのものをexec($0, @ARGV)として再起動している
のですが、それでもファイルがクローズされないということがあるの
ですかね?

臼田幸生