WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:CGIの負荷

近藤信男[MAIL][URL][WriteDate : Tue Mar 14 12:24:07 2000]

すみません近藤です。
質問ですので、こちらへ書き込ませていただきます。
CGIの負荷はどのようにかかるのか教えて下さい。

CGIスクリプト内にHTMLを多く書き込んだ場合、
CGIは負荷と感じるのでしょうか。(メモリ使用量が増えるのか)

掲示板内に多くの書き込みをしますと、
当然負荷がかかると思うのですが、
書き込みに対する処理ではなく、書き込み処理後の
ブラウザがレンダリングを行う為に必要とするHTMLテキストを
読み込む量によって、
CGIに負荷がかかるのか?ということです。

お願いします。
ちゃいパパ[MAIL][URL][WriteDate : Tue Mar 14 15:00:52 2000]

1、一般にファイル入出力の多いCGIは負荷が高いです。
2、パールなどは簡単に、一挙に大量のログデータを読み込むことができますので、このようなCGIも負荷が高いです。
3、あと、当然のことながら、アクセス数が多いと、同CGIの起動が重なりますので、2のCGIなどはかなりサーバーへ負荷をかけます。

2の代表的なCGIは KENT-WEBのコスモナビです。
ランキング機能などでソートするので、一挙に大量のログデータを読み込むます。

>ブラウザがレンダリングを行う為に必要とするHTMLテキストを読み込む量によって〜〜
このケースでは、そんなに負荷はないと思います。

とにかく、3のケースが一番です!
CGI利用のリクエストが多いとその分、サーバーはプロセスをフォーク(作成)しますので、資源を使います。

こんなところですが...。
近藤信男[MAIL][URL][WriteDate : Tue Mar 14 16:15:36 2000]

パールを使用し、Print命令で多くのHTMLを吐き出す場合は、
負荷はどうなのでしょうか。

具体的に私が行おうとしていることは、
今までホームページのデザインが同じ箇所は、ページを変えるたびに
ページをパールでから吐き出しレンダリングを行っていました。
その方法をやめて、共通デザイン部分に、フレームを使用してみようかと考えているのです。

その方法で、負荷を抑えることができるか…という質問なのですが…。

宜しくおねがいします。
ちゃいパパ[MAIL][URL][WriteDate : Tue Mar 14 18:42:29 2000]

>パールを使用し、Print命令で多くのHTMLを吐き出す場合は、〜〜
負荷はかからないと思います。(ファイルI/Oないし、メモリもあまり使わない)

>今までホームページのデザインが同じ箇所は、ページを変えるたびに
>ページをパールでから吐き出しレンダリングを行っていました。
>その方法をやめて、共通デザイン部分に、フレームを使用してみようかと考えているのです。

Print命令がへれば、当然負荷は下がると思います。
近藤信男[MAIL][URL][WriteDate : Tue Mar 14 23:42:17 2000]

ちゃいちゃんパパさんもう少しいいでしょうか。

Print命令の内容のデータ量によって、サーバーにかかる負荷は変化するのでしょうか。
例えば、40Kバイトと、100Kバイトの文字の出力を行った場合、
100Kバイトの方が、40Kバイトよりも、2倍の負荷がかかるのでしょうか。
それとも、Print命令が同じ1回ですむので、同じ負荷なのでしょうか。

最後にします。
お願いします。
Tak[MAIL][URL][WriteDate : Wed Mar 15 02:15:44 2000]

ちょっと,ごめんなさい。

そもそも,サーバーの負荷っていったいなんなんですか?
いままで,負担というのをカッコよくいってるのかなぁ,なんて思ってたんですけど。(^^;

ちゃいパパ[MAIL][URL][WriteDate : Wed Mar 15 09:05:00 2000]

>100Kバイトの方が、40Kバイトよりも、2倍の負荷がかかるのでしょうか。
>それとも、Print命令が同じ1回ですむので、同じ負荷なのでしょうか。

出力するデータ量が多い方が負荷が高いです。
ただ、何倍かは、正確にわかりません。
しかし、この場合のPrint命令は、フォーマットするわけでないし、
標準出力なので、そんなに気にするほど負荷はないと思います。

とにかく、サーバーの負荷が高くなるのは、アクセス数が多くなって、CGIのプロセス数が増大する時です。

Takさん、久しぶり。
最近、書き込みがないんで、さみしいかったです...。



近藤信男[MAIL][URL][WriteDate : Wed Mar 15 11:30:55 2000]

ありがとうございました。

>そもそも,サーバーの負荷っていったいなんなんですか?

CGIを動かしている、サーバー側の仕事量が増えると、
サーバー側が、サーバーエラーをかえして、仕事を
拒否されてしまうのです。

その仕事量の仕事の何がサーバー側に負担を与えるのか?
を質問していました。
Tak[MAIL][URL][WriteDate : Wed Mar 15 17:54:16 2000]

お答え頂きありがとうございます。ちゃいちゃんパパさんに質問したつもりだったんですが...。
そもそも,横から口を出してしまってすいません。

実は,より具体的なことを知りたかったんです。

CGIプログラムで,
・多重ループ   → CPUが特定の処理に多くの計算を費やす
・たくさんの変数 → メモリを食う
というのは,感覚的に負荷が大きいとわかるのですが,では,標準出力は?

例えば,ヒヤドキュメントで 5kB のテキストを出力するのと,
単にリクエストにより 5kB の.htmlファイルを出力するのでは,どこが違うのか?(CPUの処理,データの流れ等...)
などが知りたかったことです。これも感覚的にCGIを起動した方が負荷が大きいのはわかりますが。

あと,「サーバーの負荷」という言葉には明確な定義はあるのか?ということも...。


>最近、書き込みがないんで、さみしいかったです...。
そんなこと言われるなんて,すごくうれしいです。
たとえ,おじさんからでも。(ごめんなさい! ごめんなさい! ごめんなさい!)

実は,就職活動中なんです。きびしいです... はい。(^^;
ちゃいパパ[MAIL][URL][WriteDate : Thu Mar 16 09:09:19 2000]

実は、私もよくわかりませんが...。

「単にリクエスト〜」はサーバーのhttpd(デーモン)が常駐していますので、負荷は軽いです。
「ヒヤドキュメントで〜」は要求時、プロセスを生成し、パールはインタープリタでメモリにロードされながら、
処理しますし、CGIとhttpdとのインターフェイスのオーバーヘッドも生じますので負荷が高いです。

しかし、ヒヤドキュメント(CGI) 5kB とリクエスト(httpd) 5kBのデータ出力のみに関しては、大差はないと思います。
が、やはり、httpdは低レベルのI/Oを使っているみたいなので、若干軽いかも...。

この時期、まだ、就職活動中ですか、きびしいですね。
がんばってください。おじさんより。


Tak[MAIL][URL][WriteDate : Thu Mar 16 13:23:10 2000]

ありがとうございます。

printの出力とhttpd(というですね...)の出力は形式(?)が違うんですね。
勉強になりました。

それと
>この時期、まだ
来年度卒業予定なんです。(^^;