トップページ⇒php
817コメント199KB

★負荷軽減対策委員会(Perl、PHP)★

■ このスレッドは過去ログ倉庫に格納されています
0001ジークハルト ◆VUxx/EwNXI 02/10/15 10:33ID:ifgLRUyb
サーバ上にPerlやPHPを置く場合、何よりも重視しなければ
ならないのはサーバへの「負荷」。
負荷の高いCGIの使用は削除対象となるのが目に見えてます。
負荷を軽減させるにはどうすればいいか?
どういう書き方をすればいいか?
そんな委員会を開設しました。
0152nobodyさん02/10/19 02:17ID:???
(≧∇≦)
015312602/10/19 18:09ID:???
さがっているねぇ。この板の負荷にならないようにしているって事なのかなぅ(上出来
015410202/10/19 23:31ID:???
ネタがないですねw
0155\02/10/20 10:09ID:ASG3cWoM
PHPの掲示板でログファイルが500kBあるんですが
消さないと負荷って凄いですか?
0156nobodyさん02/10/20 10:37ID:???
処理に依る。
0157nobodyさん02/10/20 10:38ID:???
>>155
あなたの「凄い」がどの程度なのかわからないけど、
その掲示板のコードにもよるんじゃない?

掲示板のログで500kbだと3000行近くなってるんじゃない?
読み込んだり書き込んだりするのに、3000回ループする様なコードを書いてるんだったら、
考えモンだね…

ファイル丸ごと読み込んでるんだったらメモリも食うし
0158レンタル掲示板”管理”者02/10/20 11:59ID:???
>>21

キミ最高だね。ほんとアホ以外の何物でもない。しねよ。
015910202/10/20 12:08ID:q/B8ESF1
すごい厨房な質問ですいません。
例えば500kb(300行)のログファイルがあって

open(IN,"ろぐふぁいるぱす");
@lines=<IN>;
close(IN);

というように配列に内容を入れた場合
ファイル丸ごと読み込んでることになるのでしょうか?
0160nobodyさん02/10/20 12:14ID:???
>>159
なる
0161デフォルトの名無しさん02/10/20 12:24ID:/npcfUW0
>>159
Perl初心者コーナーで一行ずつ読み込んで処理するのと
どっちが早いか議論してたさ。readで読み込むのも比較
してたで。2・3日前だっけな。

0162nobodyさん02/10/20 13:32ID:???
一行ずつ処理したとしても、Perlでは本当に以前に使っていた領域が開放されているかどうかはわからんな。
Perlを開発している人たちなら分かるだろうけど。
0163nobodyさん02/10/20 13:41ID:???
>>162
>以前に使っていた領域が開放されているかどうか

以前に使っていた領域って、変数のことだろ? 1行ずつ代入しては処理を
繰り返してるから変数に代入されてる分は領域だろ? 開放もなにもないだろ
0164nobodyさん02/10/20 13:43ID:???
>>163
C言語でも勉強してきて。
016516402/10/20 13:47ID:???
ちなみに領域というのはメモリー上に確保した領域のこと。
0166nobodyさん02/10/20 13:58ID:???
>>164
>C言語でも勉強してきて。

( ´,_ゝ`) プッ
0167nobodyさん02/10/20 14:32ID:???
>>120
NPHスクリプト化でnph-chat.phpは可能ですか?
NPHはPHPでも使えるのでしょうか?
0168nobodyさん02/10/20 15:09ID:???
>>164
こういうことが言いたいのか?
http://www.mikeneko.ne.jp/~lab/perl/tuning/
0169nobodyさん02/10/21 20:11ID:???
mod_perl + gzip 最強
0170nobodyさん02/10/22 00:30ID:???
ふむふむ。
0171nobodyさん02/10/22 03:41ID:???
俺はZ80とかFortrunとか変な言語でCGI作るのが趣味なんだ
0172nobodyさん02/10/22 04:31ID:???
Fortrunという言語はたしかに変ですなあ。
0173カミ02/10/22 13:51ID:haL4weU7
キタ━━━━(゚∀゚)━━━━ッ!!キタ━━━━(゚∀゚)━━━━ッ!!キタ━━━━(゚∀゚)━━━━ッ!!
さあ、何でも聞いてよ。
0174カミ02/10/22 13:54ID:haL4weU7
カエッタ━━━━(゚∀゚)━━━━ッ!!カエッタ━━━━(゚∀゚)━━━━ッ!!カエッタ━━━━(゚∀゚)━━━━ッ!!
時間がなくなったので帰ります。
017510202/10/22 15:04ID:nYDyJAf0
>>172
高度な突っ込みですね。
0176あぼーんNGNG
あぼーん
017712602/10/22 15:38ID:???
>>175
じゃあ、Z80は言語じゃない、なんて突っ込みも許されるかひ?
0178nobodyさん02/10/22 16:10ID:???
>>171

Fortrun という言語について、詳しく教えて下さい。
0179nobodyさん02/10/22 18:50ID:???
>>177
Z80は言語じゃない、ガラスです
ttp://www.watch.impress.co.jp/av/docs/20021022/sharp.htm
0180nobodyさん02/10/23 13:13ID:dAD4Tigy
Perlの一般的なスクリプトの場合、
ログを読み出すとき出力を直接printで表示しているけど、
出力を$buffer .= "〜";というように一つの変数にまとめておいて
最後にprint $buffer;とした方が速いのかな。
imode用のスクリプトはContent-lengthヘッダを出すためにそうしてるけど。

変な日本語でスマソ
0181nobodyさん02/10/23 15:19ID:???
最初が表示されてから最後が表示されるまでは速いだろうが、
最初を表示するまでが遅くなるだけじゃねーの?

imode程度なら良いけど、メモリ食うだけじゃない?
0182nobodyさん02/10/23 15:53ID:???
>>180
2chのread.cgiがまとめて表示だったら嫌だ。
0183 ◆hMJAPH9PWA 02/10/23 18:46ID:???
>>180
出力する量にもよるだろうけど、最後に一気に出力の方が早いって事は無いんじゃないかな。
Content-Lengthが必要ないならあえて選択する方法じゃないね。
018410202/10/23 22:07ID:???
思ったんですけどKENTさんのYY-BOARDって無駄な処理が多くないでしょうか?
レスのトップソートがある場合、ない場合とかもっとスマートにできそう。
0185nobodyさん02/10/23 22:32ID:???
>>184
ガイシュツすぎる
Kentの使わないで自分でいいやつ組むのがよろし。
018610202/10/23 22:34ID:???
>>185
そうなんですか。KENTさんもバージョンアップの繰り返しで
無駄な処理を省くのが面倒なんでしょうね。
今、YY-BOARDを元に新しい掲示板を作っています。
0187nobodyさん02/10/24 08:03ID:???
Kentを元にするなって。
最初から作った方が、良いものが作れる。
0188nobodyさん02/10/24 10:36ID:???
ニュースCGI(読み込む時に常に1MBのlog.csvを読み込む)を、
ログの容量減らす以外でこのスクリプトの負荷を軽減する方法を
いくつか教えてください。

又、これってApacheのモジュール版PHPに変えたら負荷はなくなりますか?
0189nobodyさん02/10/24 11:44ID:???
ニュースCGIを使うのを止める。
0190nobodyさん02/10/24 11:59ID:???
>>189の方法が一番負荷が減るけど。
後は、何で全部表示するのにcsvにするの?最初からhtmにしとけばぁ。
ほいで、前から議論に出てるgzipで固めればぁ。
何かのキーで検索するんなら、DBMにすればぁ。
早いし全部ファイルを総なめにする必要ないから負荷激減だね。
0191nobodyさん02/10/24 12:03ID:???
>>187 禿しく尿意!
0192nobodyさん02/10/24 12:51ID:???
>>189
いや、つーか・・ええ!?

>>190
CGIの拡張子をHTMLにしてもだめですかね
ダメですよね・・・
0193nobodyさん02/10/24 12:54ID:???
負荷下げたいならapache2.0+mod_perlでいいんじゃねーの?
要はプロセス作成が重いんだし。
あとは、スクリプトのアルゴリズム次第。
019410202/10/24 14:02ID:???
>>187
open(IN,"?????")||&error("情報ファイルを開くことが出来ませんでした");
($no,$ip,$time)=split(/<>/,IN);
$no++;
close(IN);

最後にこれくらいの処理だけが面影として残ってる場合は著作権表記は必要ないと思いますか?
0195nobodyさん02/10/24 14:24ID:???
>>194
コードの面影が残っていなくても
設計の面影が残っていたら著作権表示は必要(だと思う)

しかし、現行の著作権法では、「アイデア」には著作権はなく、
具現化されたモノにのみ著作権があるので、大丈夫かな。

しかし、著作権以外の知的所有権はあるね。

まあ、ここは、KENTにどのくらい「リスぺくと」してるかによって
自分で決めればいいんじゃない?

…と勝手なことを逝ってみる
019610202/10/24 14:40ID:???
>>194
>>193の部分を記述がめんどくさいのでコピっただけなのですがね。
参考になりました。スレからすれてすいません。
0197太郎02/10/24 16:43ID:???
>>195
MAKIMAKIは消していいですか?
0198nobodyさん02/10/24 19:17ID:???
>>196
>スレからすれてすいません。
( ´_ゝ`)

>>197
画像使うんなら消しちゃダメでしょ。
0199太郎02/10/24 23:16ID:???
>>198
画像使わなかったら?
0200nobodyさん02/10/25 00:28ID:???
そんなん知るかボケ。本人に聞け。
0201nobodyさん02/10/25 00:53ID:???
>196
日本語キーボード派?
0202nobodyさん02/10/28 11:06ID:???
2chみたいのじゃなくていわゆる普通の掲示板で
HTML吐き出しタイプの場合、「次のページ」とか
「次の10件」とかの処理どうするの?
『ログ保存数/1ページ表字数』回HTML出力したら
余計負荷かかりそうだし。
0203nobodyさん02/10/28 12:51ID:???
>>202
???
ユーザがデータ追加する度に「次の10件」って変わるのか?
0204nobodyさん02/10/28 14:05ID:???
>>202
トップページだけHTML表示にすればいいと思うよ。
全ページをHTML表示するのにはあまり意味はないと思います。
0205nobodyさん02/10/28 22:38ID:???
次バージョンで修正した方がいいかな〜と思った点について
>>0-
や
>>1-100
などとした場合、返信数が多いとサーバに負担がかかる(例えば返信数が80件あると80回も表示処理を繰り返すことになる)と思いますので、例えば20件で表示を中止させる、といった処理を加えた方がいいと思います。

-------------------------------------------------

Re: v1.2 レポート ( No.38 )
日時: 2002/10/28 19:22
名前: abc


>>37
改造物を作り配布しょうとガンガって居る者がなんつー・・

スレッドログの容量分を反映させる訳だから、余程パンパンに膨れ上がった文字数で書かれているスレッドじゃない限り、デフォルトの100件maxとしても1スレッド500KB前後を読み込むだけかと。

うーん。勘違いしてますの。


こんなやり取りを見つけたんだけどどう思う?前者は100件を
一気に表示させるのはサーバに負荷がかかるだろうから制限した方がいいといって
後者はそれを否定している。
0206nobodyさん02/10/28 22:39ID:bqKuFdrO
http://www.kent-web.com/bbs/patio/patio.cgi?mode=view&no=544

ちなみにここ
やはりWEB PATIOってサーバに負荷かけるのかな?
0207nobodyさん02/10/29 11:25ID:???
一般的にどれぐらいの負荷でサーバから文句言われるの?
箱庭諸島とか禁止ってる所多いけど
0208nobodyさん02/10/29 11:50ID:QTfCZ5sA
普通の掲示板ごときでサーバに負荷なんてかかるもんなんでつか?
0209nobodyさん02/10/29 17:46ID:???
使ってるスクリプトや使い方による。
0210nobodyさん02/10/29 20:15ID:???
>>206



                 ま た K E N T か



0211nobodyさん02/11/01 09:24ID:???
Pentium4 1.6GHz RAM512MBの専用サーバなら
FF Adventureをいくつぐらいまで設置できますかね?
参加人数が1つの設置につき50人ぐらいとして。
0212nobodyさん02/11/01 13:46ID:???
>>211 3個が限界
021321102/11/01 15:22ID:???
>>212
どういう計算で3個という数が出たんですか?

FFAdventureのPHP版(Apacheモジュール版)を作ろうと思ってるんですが
それならその2倍くらい置けそうですよね?
0214nobodyさん02/11/02 03:38ID:???
まずは作れyo
0215age02/11/02 16:50ID:???
FFAdventureが負荷かかりやすい理由は?
0216nobodyさん02/11/02 18:07ID:???
>>215
厨のF5地獄
0217nobodyさん02/11/02 23:20ID:rdTV1RKU
>>215
それとIE以外のブラウザで戻るボタン多用。

Pen4 1.6GHzよりもPen3 1GHz×2の方がいいわな。
Pen4よりもPen3かCeleronの方がCGIがサクサク動くよ。
0218nobodyさん02/11/03 01:39ID:???
↑Win厨( ´,_ゝ`) プ
0219nobodyさん02/11/04 13:03ID:UUsMIZp7
厨行為がなくても負荷は掛かりやすい。
・同時プレイ人数が多い(多いところだと10人以上)
・ゲームという性質上、計算など処理量が多い。
チャットも上の性質を満たすが、それ+αなわけだ。
0220nobodyさん02/11/04 13:07ID:UUsMIZp7
でも、デフォルトのFFAの更新頻度は10分になっているから
それならば本来、そんなに負荷は掛からないはずなのだ。
ただ、最近CGIを全然知らない負荷を意識しない奴が
平気に「短い方が良いに決まってるじゃん」という
理由で更新頻度を30秒とかにしちゃってるから問題になってるわけだと思う。
0221あぼーんNGNG
あぼーん
0222nobodyさん02/11/04 15:10ID:Y3fUpfXy
異常にレベルの低い議論が続いてますね。
TOCでも勉強するといい
ボトルネック見極めないで憶測で議論しても意味ナイ
0223 02/11/04 16:29ID:???
ping -f pc.2ch.net
.
.
.
.
.
.
今日も快適だ
0224nobodyさん02/11/05 14:57ID:???
掲示板とか運営するならCGIはログ読み込み+書き込み、だけやらせて、
タグ付けはクライアントサイドでやらせる、

負荷軽減
0225nobodyさん02/11/05 15:00ID:???
>>202
全てのデータをXMLで吐かせておいて、
XSL+JavaScriptで表示、これで解決
0226nobodyさん02/11/05 20:27ID:???
>>224
そうするとかちゅーしゃ等を使うのが一番手っ取り早いね。
0227age02/11/06 08:44ID:???
Yahoo!メッセンジャー有料化だそうです
http://www.metalflame.com/mm/lovely_mm.htm
0228nobodyさん02/11/06 17:21ID:???
>>227 ブラチラ
0229age02/11/09 08:48ID:???
ブラチラで終了かよ!
0230nobodyさん02/11/09 11:56ID:E2/H+5gT
>>227はブラチラじゃないよ
0231nobodyさん02/11/09 12:07ID:IRpoTYp2
ブラクラ
0232nobodyさん02/11/14 16:08ID:???
ブラクラって何ですか?
体験させられはしたんで、何の略かを知りたいのでそ。

0233nobodyさん02/11/14 17:50ID:???
ブラでクラクラ
0234nobodyさん02/11/14 17:55ID:???
検索汁
0235nobodyさん02/11/14 20:19ID:???
>>234
そか、検索ね。アリガ�d。
ttp://www.coara.or.jp/~tkuri/BCC/faq.htmは、よかった。
browser crusher / crasherってなってるけど、crashなんてねーぞ。

023623502/11/14 20:28ID:???
いっけね。あったよ。crashの方がコンピュータがクラッシュするって
いつも使ってるやつね。crushは、もみつぶす。俺の英語力もとほほや。
逝ってくる
0237age02/11/15 09:16ID:???
データの転送量さえ少なければCGIの負荷ってかからないよね?
023823802/11/15 09:18ID:8BLO7GsJ
コバルトサーバ → CGI不向き
Pentium III    → CGI可
Pentium IV    → CGI最適

の図式で合ってる?
023923802/11/15 09:20ID:8BLO7GsJ
コバルトサーバ → CGI不向き
Pentium → CGI最適

と考えてよろしいか?
0240nobodyさん02/11/15 10:03ID:???
>>237 なわけねーだろ
0241nobodyさん02/11/15 11:40ID:???
>>238
Pentium使ってるCobalt serverはどうなるの
0242nobodyさん02/11/16 02:53ID:???
perlでHTMLとか吐くとき
ヒアドキュメント使うのと全部printで表示するのはどっちがいいんですか?
0243nobodyさん02/11/16 14:45ID:???
>>242
表示したい文字列を全て一つの変数に入れて、最後にprintする
0244nobodyさん02/11/16 16:47ID:???
>>243
お手軽だけどメモリバカ食いだねw
0245nobodyさん02/11/16 20:52ID:???
>>244
ところでHTML::Templateって結局>>243だよね。
$tmpl->output(\*STDOUT);
みたいにしてテンプレートに変数流し込むそばから
すぐprintできるとうれしい…。
0246nobodyさん02/11/17 12:14ID:YRaU2xF9
つーか
@RANKING = $RANKING[
sort {$tmp1[$b] <=> $tmp1[$a] or $tmp2[$b] <=> $tmp2[$a]
}
0 .. $#tmp1];
ってなperlの部分をphpになおしたいんだが
だれか教えてくれないでしょうか?
0247nobodyさん02/11/17 18:05ID:???
@tmp1 を主キー
@tmp2 を副キーにしてソートしてるだけのような。
0248nobodyさん02/11/18 04:29ID:???
>>214
FFAのPHP版がもう少しで
できそうです。
0249age02/11/18 11:06ID:???
>>248
神
0250nobodyさん02/11/20 18:27ID:???
神は禿げていた、、、と
0251nobodyさん02/12/22 15:32ID:/yTei76p
lkh
0252nobodyさん02/12/22 15:43ID:???
>>248
どうかね。できたかい?
■ このスレッドは過去ログ倉庫に格納されています