投稿日:2005年01月09日 作成鷹の巣

No.18112 同時アクセス数の影響?でcgiが動きません



同時アクセス数の影響?でcgiが動きません

No.18112 投稿時間:2005年01月09日(Sun) 23:49 投稿者名:GERUGERU URL:

はじめまして。社内WebをWindows2000Server(といっても、つい3日前にPriffesionalから乗せ替えたばっかりです)+IIS+Active Perl5.6.1で動かしています。しかし、同時アクセスが多くなるからなのかcgiで動かしている掲示板がうまく表示できないことが多いです。その度ごとにWorld Wide Web Publishingを再起動させています。何がおかしいのか分かりません。どなたかご教授くださいませ。


まずは、IIS をいじってみましょう。

No.18116 投稿時間:2005年01月10日(Mon) 02:12 投稿者名:帯鯖 URL:

帯鯖@名古屋です。

掲示板がうまく表示できない状況に陥った場合、
それ以降も表示されない症状が持続するのでしょうか?
あるいは一時的に表示されないだけでしょうか?

後者である場合、IIS で下記設定を行なうとよいでしょう。

1. 最大接続(想定)数の値を上げる
2. マルチタスク設定を行なう(KeepAlive だったかな…)

ただし、Perl 側がマルチプロセスに対応できなければ、別の対策を考える必要があります。


> はじめまして。社内WebをWindows2000Server(といっても、つい3日前にPriffesionalから乗せ替えたばっかりです)+IIS+Active Perl5.6.1で動かしています。しかし、同時アクセスが多くなるからなのかcgiで動かしている掲示板がうまく表示できないことが多いです。その度ごとにWorld Wide Web Publishingを再起動させています。何がおかしいのか分かりません。どなたかご教授くださいませ。


World Wide Web Publishingを再起動しない限りそれ以降も表示されません。

No.18123 投稿時間:2005年01月10日(Mon) 20:47 投稿者名:GERUGERU URL:

アドバイスどうもありがとうございます。「それ以降も表示されない」という表現がよく分からないのですが、World Wide Web Publishingを再起動しない限りそれ以降も表示されません。ただし再起動すればそれ以降は表示されます。

> 1. 最大接続(想定)数の値を上げる
もちろん最大接続数は無制限にしています。

> 2. マルチタスク設定を行なう(KeepAlive だったかな…)
キープアライブ、確かにありますよねぇ。キープアライブをどうすればいいのでしょうか?

> ただし、Perl 側がマルチプロセスに対応できなければ、別の対策を考える必要があります。
言葉の響きからすると、なんかこれが一番問題な感じがするんですけども…。perlがマルチプロセスに対応する、とはどういうことですか?

難しい…。是非ご教授くださいませ。


KeepAliveとPerl内でのプロセスにて費やす時間を考慮してください。

No.18134 投稿時間:2005年01月13日(Thu) 01:05 投稿者名:帯鯖 URL:

帯鯖@名古屋です。

2. マルチタスク設定を行なう(KeepAlive だったかな…)

IIS で KeepAlive を ON にしていると、
クライアントからのリクエストを処理している間に同一クライアントから
別のリクエストが入った場合、その別リクエストは「待ち」に入ります。

処理中のリクエストをレスポンスした後に、次の「待ち」であったリクエストの処理を開始します。
(同一クライアントとの間のみで、他のクライアントには影響ありません。)

OFF とすれば、この状態を回避できます。

> Perl 側がマルチプロセスに対応できなければ、

Perl が、どのようにリクエストを処理するかです。

1. 1プロセス内で直列処理を行なう(シングルプロセスシングルジョブ)
プロセスが他の処理に占有されている場合、排他が効き、他の処理は「待ち」の状態となります。

2. 1プロセス内で並列処理を行なう(シングルプロセスマルチジョブ)
プロセス処理中でも、他の処理は入れます。「待ち」は発生しません。

3. 複数プロセスを立てて、「みかけ」の並列処理を行なう(マルチプロセスシングルジョブ)
処理が入るごとにプロセスを立てるので、「待ち」は発生しません。
但し、メモリや CPU の消費率が上がり、それにより全体的なレスポンスに影響します。


1. かつ KeepAlive が ON であれば、処理までの間に

IIS 側での「待ち」 + Perl 側での「待ち」

の余分な時間が掛かります。
設定した IIS タイムアウト時間を上まわると、IIS は、
503 Service Unavailable 等をレスポンスする可能性があります。

2. は、Perl では採用していないと思います。

3. かつ KeepAlive が ON であれば、「待ち」は IIS 側のみですが、
Perl 側で複数のプロセスが起動するため、CPU, メモリ等の負荷状況により、
レスポンスするまでの時間が、大幅に増加します。
この場合も、503 Service Unavailable 等をレスポンスする可能性があります。

お使いの環境で、リクエストからレスポンスまでの間で、
どのように処理が流れるかをざっと把握するとよいでしょう。

ただし、むやみに全開状態で処理を受けつけるようにしてしまうと、
サーバがハングアップする恐れもあります。

適切にチューニングしてみてください。


> アドバイスどうもありがとうございます。「それ以降も表示されない」という表現がよく分からないのですが、World Wide Web Publishingを再起動しない限りそれ以降も表示されません。ただし再起動すればそれ以降は表示されます。
> > > 1. 最大接続(想定)数の値を上げる
> もちろん最大接続数は無制限にしています。
> > > 2. マルチタスク設定を行なう(KeepAlive だったかな…)
> キープアライブ、確かにありますよねぇ。キープアライブをどうすればいいのでしょうか?
> > > ただし、Perl 側がマルチプロセスに対応できなければ、別の対策を考える必要があります。
> 言葉の響きからすると、なんかこれが一番問題な感じがするんですけども…。perlがマルチプロセスに対応する、とはどういうことですか?
> > 難しい…。是非ご教授くださいませ。


|目次|掲示板|過去ログ目次|▲頁先頭|