- ベストアンサー
掲示板cgiがサーバーを圧迫する仕組みを教えて欲しい。
cgi初心者です。 一つのサイトに複数の掲示板10個程設置することを検討してます。 ホームページの更新をソフト無しで簡単にできるようにする目的で、管理者のみが書込できるタイプにしようと考えています。 これならば、それほどサーバーに負担がかからないかなぁと勝手な解釈をしているのですが...。 一般に掲示板等のcgiはサーバーに負担をかける...と言いますが、 「書込」等の作業が重なった時に負担がかかると考えてよろしいのでしょうか? それとも、cgiが設置されていることだけで常時負担がかかっているということでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
たしかに、処理の重いcgiプログラムは自粛してくださいとか言われますよね。たとえば、ワードやエクセルでたくさんファイルを開くと、プログラム自体はひとつだけ起動していて、そのなかでいくつもの書類が開いていますよね。 ところがcgiは書類ひとつにプログラムが1対1で起動する感じです。2つ開けばプログラムも2つ、3つ開けば・・・と。エクセルが2重3重で起動してると、重そうでしょ?でもそれがイヤだというわけじゃなくて、いっぱいそれをされるとメモリーが足りません、ってなるですよ。そうなると重いサイトだなーとなるです。 とはいえ、実際のところは、ご心配には及ばないと思いますよ。 掲示板を立てる、っていってもずーっと立ってるわけじゃないですから。まったく同時に閲覧や書き込みがされたときにそうやってリソースを食うというだけであって、書類もひとつ開いてはひとつ閉じ、とすれば別にメモリー不足警告が出たりはしませんよね。 それもソフト面、ハード面から改善されてきています。テキストログをいじくる程度の個人の掲示板ならいくつ立ててもまったく問題ありません。大人気で重い、となればプロバイダー側にサーバーをアップグレードしてもらいましょう。
その他の回答 (3)
- taba
- ベストアンサー率61% (349/567)
一口に掲示板といっても、どのようなプログラムのつくりになっているかによって答えは違います。 掲示板の「書き込み」は、記入した内容を何らかの形で保存する処理があります。「読む」ほうは、プログラムによって「保存されたデータを読み出してHTML化する」処理があるプログラムと、「書き込みの時点でHTMLを作成するので、読むときにはプログラムは動作しない」プログラムがあります。 後者の場合はまったく問題ない(というか負荷の観点からは通常のページと同じ)ですが、前者の場合はプログラムが動作することには変わりません。ただ、#3の方が書かれているような「読取・書込みを保留する」処理は通常不要なので、負荷は小さくなります。 あとは公開に使うサーバー次第ですが、読み出すときにも何らかの処理をする掲示板プログラムであれば、10個おけばそれなりに「負荷」はあります。通常は問題ないと思いますけどね。
お礼
「HTML化してサーバーに負担がかからない」タイプはどこかのフリーcgiで見たことがありますね。 なるほど、このタイプなら比較的問題が少ないわけですね。 勉強になりました。 有難うございました。
- raad
- ベストアンサー率32% (47/144)
CGIは呼び出される(=アクセスされる)たびに、一つのソフトが起動すると考えてください。 さて、掲示板などのCGIは最新の情報を提供するようにプログラムされています。 ということは、書き込み中のデータを読み取られては困るときがあります。 不十分な情報が提供されるだけでなく、それを基準に書込みが行われれば、「ファイルが壊れる」が起きます。 この情報の一貫性を保証するために、多くのCGIなどのプログラムは、 「他で書き込み作業中は、読取・書込みを保留する」 という処理が施されています。 ここでアクセスが集中すると、ソフトの大量起動が発生し、ご想像通りの現象が起きます。 これが一般的に「負荷をかける」に相当すると思います。 特定の人しかアクセスしないCGIであれば、この定義に相当しません。 なお、通常CGIは「ブラウザへの表示の完了=動作の終了」となります。
お礼
同じ時間(瞬間?)にアクセスがあると、 問題が起きやすいわけですね。 比較的アクセスが少ないページだと思うので、 ウチの場合は危険率が低そうですが、 この辺頭にいれておかなければいけませんね。 ありがとうございました。
- hana-hana3
- ベストアンサー率31% (4940/15541)
CGIは呼ばれた時に実行します。 掲示板では、掲示板を表示するときにもCGIが動作して表示が行われています。 管理者しか使えない物と言っても、ページ内にメニューがあればクリックする人もいるでしょうから、そのときもパスワード入力などの部分が動作します。 書き込むかどうかではなく、同時にCGIにアクセスする人の数が増えれば、それだけ負担が重くなると考えてください。 CGIが動作しないなら負担にはなりません。 サーバーの負担になると言うことは、そのサーバーの動作が重くなるので、あなた以外のページに普通にアクセスしている人にも迷惑が掛かってしまうと思ってください。
お礼
なるほど、一般のレンタルサーバーなんかは、 これで問題になったりするのですね。 これは頭にいれておかなければいけませんね。 ありがとうございました。
お礼
なるほど。 自分のパソコンでアプリケーションを立ち上げるような考え方でいいわけですね。 とても解りやすい解説でした。 個人サイトではないのですが、 どちらかというと地域に向けたプロモーションのサイトなので、 それほどアクセスがあるわけでもありません。 アクセスがなければ、問題はないということですね。 (無いのも別の面で問題ですが...) 有難うございました。