★負荷軽減対策委員会(Perl、PHP)★
サーバ上にPerlやPHPを置く場合、何よりも重視しなければ ならないのはサーバへの「負荷」。 負荷の高いCGIの使用は削除対象となるのが目に見えてます。 負荷を軽減させるにはどうすればいいか? どういう書き方をすればいいか? そんな委員会を開設しました。 >>175 じゃあ、Z80は言語じゃない、なんて突っ込みも許されるかひ? >>171 Fortrun という言語について、詳しく教えて下さい。 >>177 Z80は言語じゃない、ガラスです ttp://www.watch.impress.co.jp/av/docs/20021022/sharp.htm Perlの一般的なスクリプトの場合、 ログを読み出すとき出力を直接printで表示しているけど、 出力を$buffer .= "〜";というように一つの変数にまとめておいて 最後にprint $buffer;とした方が速いのかな。 imode用のスクリプトはContent-lengthヘッダを出すためにそうしてるけど。 変な日本語でスマソ 最初が表示されてから最後が表示されるまでは速いだろうが、 最初を表示するまでが遅くなるだけじゃねーの? imode程度なら良いけど、メモリ食うだけじゃない? >>180 2chのread.cgiがまとめて表示だったら嫌だ。 >>180 出力する量にもよるだろうけど、最後に一気に出力の方が早いって事は無いんじゃないかな。 Content-Lengthが必要ないならあえて選択する方法じゃないね。 思ったんですけどKENTさんのYY-BOARDって無駄な処理が多くないでしょうか? レスのトップソートがある場合、ない場合とかもっとスマートにできそう。 >>184 ガイシュツすぎる Kentの使わないで自分でいいやつ組むのがよろし。 >>185 そうなんですか。KENTさんもバージョンアップの繰り返しで 無駄な処理を省くのが面倒なんでしょうね。 今、YY-BOARDを元に新しい掲示板を作っています。 Kentを元にするなって。 最初から作った方が、良いものが作れる。 ニュースCGI(読み込む時に常に1MBのlog.csvを読み込む)を、 ログの容量減らす以外でこのスクリプトの負荷を軽減する方法を いくつか教えてください。 又、これってApacheのモジュール版PHPに変えたら負荷はなくなりますか? >>189 の方法が一番負荷が減るけど。 後は、何で全部表示するのにcsvにするの?最初からhtmにしとけばぁ。 ほいで、前から議論に出てるgzipで固めればぁ。 何かのキーで検索するんなら、DBMにすればぁ。 早いし全部ファイルを総なめにする必要ないから負荷激減だね。 >>189 いや、つーか・・ええ!? >>190 CGIの拡張子をHTMLにしてもだめですかね ダメですよね・・・ 負荷下げたいならapache2.0+mod_perlでいいんじゃねーの? 要はプロセス作成が重いんだし。 あとは、スクリプトのアルゴリズム次第。 >>187 open(IN,"?????")||&error("情報ファイルを開くことが出来ませんでした"); ($no,$ip,$time)=split(/<>/,IN); $no++; close(IN); 最後にこれくらいの処理だけが面影として残ってる場合は著作権表記は必要ないと思いますか? >>194 コードの面影が残っていなくても 設計の面影が残っていたら著作権表示は必要(だと思う) しかし、現行の著作権法では、「アイデア」には著作権はなく、 具現化されたモノにのみ著作権があるので、大丈夫かな。 しかし、著作権以外の知的所有権はあるね。 まあ、ここは、KENTにどのくらい「リスぺくと」してるかによって 自分で決めればいいんじゃない? …と勝手なことを逝ってみる >>194 >>193 の部分を記述がめんどくさいのでコピっただけなのですがね。 参考になりました。スレからすれてすいません。 >>196 >スレからすれてすいません。 ( ´_ゝ`) >>197 画像使うんなら消しちゃダメでしょ。 2chみたいのじゃなくていわゆる普通の掲示板で HTML吐き出しタイプの場合、「次のページ」とか 「次の10件」とかの処理どうするの? 『ログ保存数/1ページ表字数』回HTML出力したら 余計負荷かかりそうだし。 >>202 ??? ユーザがデータ追加する度に「次の10件」って変わるのか? >>202 トップページだけHTML表示にすればいいと思うよ。 全ページをHTML表示するのにはあまり意味はないと思います。 次バージョンで修正した方がいいかな〜と思った点について >>0- や >>1-100 などとした場合、返信数が多いとサーバに負担がかかる(例えば返信数が80件あると80回も表示処理を繰り返すことになる)と思いますので、例えば20件で表示を中止させる、といった処理を加えた方がいいと思います。 ------------------------------------------------- Re: v1.2 レポート ( No.38 ) 日時: 2002/10/28 19:22 名前: abc >>37 改造物を作り配布しょうとガンガって居る者がなんつー・・ スレッドログの容量分を反映させる訳だから、余程パンパンに膨れ上がった文字数で書かれているスレッドじゃない限り、デフォルトの100件maxとしても1スレッド500KB前後を読み込むだけかと。 うーん。勘違いしてますの。 こんなやり取りを見つけたんだけどどう思う?前者は100件を 一気に表示させるのはサーバに負荷がかかるだろうから制限した方がいいといって 後者はそれを否定している。 一般的にどれぐらいの負荷でサーバから文句言われるの? 箱庭諸島とか禁止ってる所多いけど 普通の掲示板ごときでサーバに負荷なんてかかるもんなんでつか? Pentium4 1.6GHz RAM512MBの専用サーバなら FF Adventureをいくつぐらいまで設置できますかね? 参加人数が1つの設置につき50人ぐらいとして。 >>212 どういう計算で3個という数が出たんですか? FFAdventureのPHP版(Apacheモジュール版)を作ろうと思ってるんですが それならその2倍くらい置けそうですよね? >>215 それとIE以外のブラウザで戻るボタン多用。 Pen4 1.6GHzよりもPen3 1GHz×2の方がいいわな。 Pen4よりもPen3かCeleronの方がCGIがサクサク動くよ。 厨行為がなくても負荷は掛かりやすい。 ・同時プレイ人数が多い(多いところだと10人以上) ・ゲームという性質上、計算など処理量が多い。 チャットも上の性質を満たすが、それ+αなわけだ。 でも、デフォルトのFFAの更新頻度は10分になっているから それならば本来、そんなに負荷は掛からないはずなのだ。 ただ、最近CGIを全然知らない負荷を意識しない奴が 平気に「短い方が良いに決まってるじゃん」という 理由で更新頻度を30秒とかにしちゃってるから問題になってるわけだと思う。 異常にレベルの低い議論が続いてますね。 TOCでも勉強するといい ボトルネック見極めないで憶測で議論しても意味ナイ ping -f pc.2ch.net . . . . . . 今日も快適だ 掲示板とか運営するならCGIはログ読み込み+書き込み、だけやらせて、 タグ付けはクライアントサイドでやらせる、 負荷軽減 >>202 全てのデータをXMLで吐かせておいて、 XSL+JavaScriptで表示、これで解決 >>224 そうするとかちゅーしゃ等を使うのが一番手っ取り早いね。 ブラクラって何ですか? 体験させられはしたんで、何の略かを知りたいのでそ。 >>234 そか、検索ね。アリガd。 ttp://www.coara.or.jp/~tkuri/BCC/faq.htmは、よかった。 browser crusher / crasherってなってるけど、crashなんてねーぞ。 いっけね。あったよ。crashの方がコンピュータがクラッシュするって いつも使ってるやつね。crushは、もみつぶす。俺の英語力もとほほや。 逝ってくる データの転送量さえ少なければCGIの負荷ってかからないよね? コバルトサーバ → CGI不向き Pentium III → CGI可 Pentium IV → CGI最適 の図式で合ってる? コバルトサーバ → CGI不向き Pentium → CGI最適 と考えてよろしいか? >>238 Pentium使ってるCobalt serverはどうなるの perlでHTMLとか吐くとき ヒアドキュメント使うのと全部printで表示するのはどっちがいいんですか? >>242 表示したい文字列を全て一つの変数に入れて、最後にprintする >>244 ところでHTML::Templateって結局>>243 だよね。 $tmpl->output(\*STDOUT); みたいにしてテンプレートに変数流し込むそばから すぐprintできるとうれしい…。 つーか @RANKING = $RANKING[ sort {$tmp1[$b] <=> $tmp1[$a] or $tmp2[$b] <=> $tmp2[$a] } 0 .. $#tmp1]; ってなperlの部分をphpになおしたいんだが だれか教えてくれないでしょうか? @tmp1 を主キー @tmp2 を副キーにしてソートしてるだけのような。 >>214 FFAのPHP版がもう少しで できそうです。 漏れ様の貧弱なマシンではよォ、use DBI;で0.20[s]もオーバーヘッドがかかりやがる。 use Pg;で0.13[s]なんだ。。。 やっぱApacheDBIにしたほうがよさげ? 最近、ここのYomi-Searchを改造してPath Infoに対応させた。 ロボット型検索エンジンからの直リンクが多いので、デコード処理をしない分 負荷軽減になるとおもうけど、どうおもう? >>252 じゃあこのスレにもひっそりと宣伝。現在配布に向けてテスト中。 あまり大々的にしてないので、参加者が少ないです。 もし暇な方とかいたらよろしく。 http://www.s55.net/ ~paka/ >>255 PHPにしたからって普通の鯖屋が 「FFA、箱庭は禁止ですがPHP版であれば設置可能です」なんて 言うと思えんとこがつらいな。 >>255 例えば自分が設置しているS55netさんだと、 本来ゲームなどの高負荷CGIは+1000円になるのですが、 同じ料金のままにしてもらってます。 具体的に負荷をチェックしてみてくださいって言ってみるといいかもね。 それでも負荷が多かったら禁止されてもしょうがないし。 ああ、でもFFA禁止って言うのは負荷だけじゃなくて 改造による暴走の危険性も考えてのことかな・・・ そうするとつらいかも。 >>245 perldoc HTML::Template したら、 > You may optionally supply a filehandle to print to > automatically as the template is generated. This may > improve performance and lower memory consumption. > Example: > > $template->output(print_to => *STDOUT); > > The return value is undefined when using the "print_to" > option. だって。エラー処理のことを考えたら、>>243 のやり方がいいとは思うけど。 http://member.nifty.ne.jp/hippo2000/perltips/html/template.htm はちょ と古いね。 あの、漏れもFFAを軽量化しようと改良してるところ。 メインの画面のhtmlとかをJavaScriptで生成して2回目からは クライアント側でキャッシュできるかな?と 思ってますがかなり軽量できますかね? >>261 師匠、いくらプログラムをいじったってパソコンは軽くならないですよ。 電源から電気をもらっているわけで HDの容量が変わると電荷の分増えたりしないのか? 2ショットサイト作成中なんですが、チャットってログはテキストより SQLにした方が負荷は低いですか? チャット自体はモジュールのPHPで動かす予定なんですが。 >>266 ログは多くても100件保存できればOKでしょ? だったらテキストの方が良いに決まってる。 >>266 チャットは mod_perlで常駐させて 配列にログ入れて ファイルアクセスをなくすと めっちゃ早かったでつ。 んで、保存ログは20行以下に切り詰めて ブラウザ側でJavaScript使ってログを保存・表示させていく方式が よろしかろう・…というか、よろしかったでつ。 >>276 チャット一つあたりのログは精々10〜20件ぐらいですね。 他に管理者用のコソーリ覗き見スクリプト(ログ全件保存)ってのも 作ってあったりしますが^^; >>268 mod_perlは普通に動くスクリプトをそのまま動かせるんだったら 試してみようとも思うんだが。お手軽さならPHPに流れちゃうね。 そういえば自分、JavaScriptは全然わけわかめだった^^; >>244 1ページ分を1つの変数に入れたとしてもせいぜい50KB。 たいしてメモリを食わないと思うんだがどうだろう? 辞典みたなものをCGIで作ろうと思ってるんだけど、データをHTMLで保存するか ログファイルに保存して毎回CGIで表示するか迷ってる。 CGIサーバが5MBしか容量ないので保存データ量を節約したいけど負荷が気になる。 1日500件もアクセス無いはずだから別にいいかな? >>271 辞典の更新頻度、検索の手段によるのでは 質問です。 Windows2000 Apache 1.3.26 win32 ActivePerl 5.6.1 でCGIのテストをしているのですが、 CGIの負荷を数値等で表示してくれるツールってないですか? 今は、タスクマネージャーで見ているのですが、 もっと詳細に負荷の具合を調べたいのですが、 ご存じの方、よろしくお願いします。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる