[Namazu-win32-users-ja 703] Re: 2.0.16でnamazu.exeにタイムアウトが発生する

media-1 @ tobu.co.jp media-1 @ tobu.co.jp
2006年 8月 2日 (水) 20:23:09 JST


加藤です。

Tadamasa Teranishi <yw3t-trns @ asahi-net.or.jp> wrote:

> ここまでの
> ・2,3個 namazu.cgi.exe が走っている
> ・CPU負荷が100%
> の状態は特に問題ではありませんし、IISの設定(チューニング)である程度
> 改善することは可能でしょう。
> 
> ただし、この状態が長い時間ずっと続いているというのであれば、それは
> 異常です。
> この状態はどれくらい続くのでしょうか?

実際に、この状態になった時の時間を計ってないのですが、通常時はnamazu.cgi
.exeがプロセスに上がって1,2秒で消えるのですが、数分は残っていると思われ
ます。


> 考えられることは
> A. タイムアウト時間が短すぎて、namazu.cgi.exe が終了するまでの十分な
>    長さではない
> B. namazu.cgi.exe が異常に時間がかかりすぎて(無限ループ)、十分な長さ
>    のタイムアウト時間を越えてしまった
> の2通りです。
> 
> 先の内容とあわせて考えると、B の可能性がありますが、タイムアウトを
> 伸ばせば改善するようなら A ということになります。

普段は、数秒で検索結果を表示していますので、タイムアウト時間が短いと言う
感じでは無いので、Bの可能性が高いかも知れません。
 

> 次は、インデックスに問題がある場合です。
> 2.0.16 に変えた後ぐらいでインデックスが壊れたとか、あるいは
> インデックスを gcnmz で圧縮していないので、2.0.16に変えた後あたり
> から、削除文書の割合がずっと増えてしまったという場合です。
> この場合、前者だと無限ループに入るかもしれませんし、後者だと
> 処理に時間がかかることがあります。
> gcnmz を頻繁に実行していないのであれば、一度 gcnmz を実行してみて
> ください。

恥ずかしながら今まで、gcnmzを一度も実行していませんでした。
早速、実行させたところ、ある一つのインデックスの処理に40分位掛かりました
デリート数も170000位ありました。この辺もタイムアウトする要因だったかも
知れません。

たまたま、この処理中にサーバーの反応が鈍くなり、プロセスを見たところ、
CPU負荷が100%状態でnamazu.cgi.exeが数分3つ立ち上がったままでしたので、
強制終了させました。その後は、問題なく作業も終了しました。
 
> 最後は最近サイトが人気で、namazu.cgi.exe の利用頻度が増えた場合です。
> 利用頻度が増えれば、namazu.cgi.exe の同時実行の確率が高くなります。
> タイムアウトが実時間だったかどうか忘れましたが、仮に実時間であれば、
> 同時実行すればそれだけ処理が終わる時間が遅くなるので、タイムアウト
> が発生する確率は上がります。

IISのログから、namazu.cgi.exeは一日平均で800回利用ですから、そんなに多く
は無いとは思いますが、イベントログを見ると同時実行された時にタイムアウト
が発生してますので、これも要因になるかも知れません。

> いずれにしても、namazu.cgi.exe のプロセスをkillしないと復旧しない
> ということなのか、しばらく待てば復旧するのかどちらでしょう。

状況から、しばらく待ては復旧するので、今まであまりこのような事象に気がつ
かなかったのですが、今回たまたまイベントログを調べたらこのような現象が
あることに気がついた次第です。

gcnmzを毎週行うようにしましたので、まずはこれで様子を見てみようと思いま
す。





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