どのようなCGIがサーバーに負荷がかかってしまうのでしょうか?

[上に] [前に] [次に]
じぇい 1999/06/06(日) 13:06:48
現在メーリングリストを製作中です。
それで、はじめはメーリングリストのデータをすべて同じファイルに保存しようとしていました。
しかし、メーリングリストはデータが莫大になる可能性があると思ったので、一つのファイルにすべてのデータを保存するのは少し問題があるような気がしました。
データは50件ずつの表示にしたのですが、例えば、

  open(IN, "$data_file");
  @all_data = <IN>;
  close( IN );

このような感じの処理が途中にあるのですが、この処理をしたとき、一度はすべてのデータを配列に格納するわけだから、データファイルのサイズが膨大だった場合はサーバーに大きな負担がかかるような気がしました。そうなんでしょうか?

それで、データを数件ごとに別々のファイルに分割しようと思ったのですが、削除処理と表示がうまく両立できません。
データの表示をファイルごとにしようと考えたとき、削除処理を行っていたら、一つのファイルに入っているデータの数がばらばらになってしまいます。

ひとつのファイルにすべてのデータを収めて、なお、サーバーに負担のかからない方法などはあるのでしょうか?

また、サーバーに負担をかけずに、削除処理と表示がうまくできるほうほうがあれば教えてください。

NAK 1999/06/06(日) 20:39:32
負担がかかる処理としては、
1.扱うファイルがあまりに巨大。
2.処理が複雑。
3.オープン等の回数が多い。
4.何度も呼び出される。

等があります(そのまんま(^^;)
抽象的な言い方しかできませんが、
総合的にみて、バランスのとれたものが負担が少ないといえます。
いきなり完璧なものはできません。とりあえず運用してみて、
よくない部分を改善していくのがよいと思います。
同じようなものでも、運用の仕方、状況により最善の方法は違います。

じぇい 1999/06/07(月) 04:09:55
[[解決]]
そうですか。
そりゃそうっすね。。

まあ、とりあえずはそのメーリングリストは自分の所でしか使うつもりはないので、まず運用しています。
データ件数が少ないうちは問題ないと思いますし。。一人当たりのデータ量も少ないと思うので。。
まずは、300件くらいを最大記録数として運用してみます。
いずれ、Perlの理解とと共にいろいろわかってくることを願って。。

とほほさんのラウンジなどを参考にさせてもらったりもしたのですが、とほほさんも検索の際に、ファイルの総なめという処理を行っているし、表示数を50件、記録数を300件程度なら問題ない、、と自分的に勝手に解釈しました。^^;

>3.オープン等の回数が多い。
>4.何度も呼び出される。
これは勉強になりました。
ファイルのオープンの回数が多すぎるのもサーバーに負荷のかかる原因となるのですね、、。

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

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