検索フォームのサーバーへの負荷

[上に] [前に] [次に]
T.I. [E-Mail] [HomePage] 2000/06/02(金) 14:11:24
検索したいフォルダが複数にまたがっており、
それぞれ100以上のページに分かれています。
この場合、複数のフォルダを一つのプログラムで検索するか、
もしくはフォルダごとにプログラムを設置して検索したほうがいいのか、
どちらがよりサーバーに負担をかけずに検索させることができるのでしょうか。
大規模検索システムを導入するには、
まだ踏ん切りがつかないので、悩んでおります。お願いいたします。

バギンズ 2000/06/02(金) 14:21:21
検索したファイル数をカウントしていって、100ファイルごととかに
1秒スリープする様に改造するってのは駄目ですかね?(^_^;)

T.I. 2000/06/02(金) 17:44:32
>バギンズさま
そこまで改造するにはどうしたらよいか、
具体的に教えてください・・・。そこまでは私には無理なので(T_T)

素人的な考えかもしれませんが、その方法をとった場合、
検索速度が落ちることになりませんか?

バギンズ 2000/06/02(金) 18:32:02
wwwsrch.cgi で説明すると
まず、ファイル数をカウントする変数の初期化($fcnt = 0;)を
メインルーチンからsearch1をコールする前あたりにでもいれて

# ここから
$fcnt = 0;
# ここまで追加
&search1($target_dir);
print "</DL>\n";
print "<HR>\n";



sub search2 で各種変数を初期化する前あたりにでも
カウントとスリープのチェックを入れます。

# ここから
$fcnt ++;
if ($fcnt >= 100){
sleep 1;
$fcnt = 0;
}
# ここまで追加
# 各種変数を初期化する
undef %wordflag;
$title = "";


サーバー負荷とカウント数の兼ね合いは調整してください。

>素人的な考えかもしれませんが、その方法をとった場合、
>検索速度が落ちることになりませんか?
当然落ちますよ。
もっと細かいSleepができれば、そっちを使いたいんですけど、
誰か知りませんかねえ?

Fuji.♪ [E-Mail] [HomePage] 2000/06/02(金) 18:49:23
とりあえず、perlfuncをざっと眺めて見た限り、sleep()の実装について追いかけて見ました。

要は sleep(1) = select(undef, undef, undef, 1) ということのようです。
サンプルにばっちり0.25秒の場合は select(undef, undef, undef, 0.25) とありました。

Win32版のみのチェックになりますが、一応これで出来ることを確認しました。

バギンズ 2000/06/02(金) 19:14:23
さすがFuji.♪さん!(^_^)

#関係ないですけど、Fuji.♪のハンドルって最後に♪が付いてる
#せいか、いつもウキウキ気分って感じがします。(^_^;)

@_@ 2000/06/02(金) 23:25:51
なまず

T.I. [E-Mail] 2000/06/06(火) 18:47:27
[[解決]]
う・・・やっぱりなまずですか(T-T)
レスありがとうございました。
もう少し勉強してから、考えてみようと思います。

[上に] [前に] [次に]