★負荷軽減対策委員会(Perl、PHP)★
サーバ上にPerlやPHPを置く場合、何よりも重視しなければ
ならないのはサーバへの「負荷」。
負荷の高いCGIの使用は削除対象となるのが目に見えてます。
負荷を軽減させるにはどうすればいいか?
どういう書き方をすればいいか?
そんな委員会を開設しました。 掲示板はYahooのジオボードでも使っているように.htmlファイルを作成するようにする
データベース系はGoogleのように検索されたものを必ずキャッシュして次回同じ語が検索された時に備える いちいち負荷を気にしてるようじゃァ、やらないこった! >>2
なるほど、、、
>>3
負荷を気にする人のためのスレよ 負荷軽減と速度アップは相反することが多い。
アルゴリズムの工夫なら速度アップにつながる事が多い。 負荷かかる順番としては
Ruby>>Java>>Perl>>PHP>>>>>>>>>C++
と考えていい? PHPでもXREAの凍結対象になる程かなり負荷かかるんですが
何かいい方法は? やっぱPerlで掛け算とかは負荷になるのかな?
内部でOPコードが処理してるのなら足し算も掛け算も一緒だろうけど。 >>8
XREAってモジュールのやつはなくなったの? >>13
XREAの規約に
●PHPの動かし方がわからないのですが?
public_html内で動作させる場合は、CGIとしてのみご利用可能です。
shared_htmlで動作させる場合は、モジュール版PHP(SafeMode付き)で
実行できます。
ってあったから
shared_html内に入れれば負荷は軽減できるはず。 >>15
まさかモジュール版とCGI版で同じソース使う気か?
(((( ;゚Д゚)))ガクガクブルブル >>15,>>16
shared_htmlって所に入れましたが同じソースで何か問題あるんですか モジュール版ってCGIに比べてどれくらい負荷軽減出来るの?
3分の1くらいか? やっぱ、重要なサイトは押さえておきたいな。
http://www.math.tohoku.ac.jp/~kuroki/WWW/HowToLighten.html
他にある?
>>18
http://perl.apache.org/start/tips/registry.html
の下の方に、hello.cgiがmod_perlだと、243/7.3倍に
なるそうだ。hello.cgiのコードも書いてあるけど、まあ、相当な
もんだなや。
>>19
某無料スペースで掲示板CGIを2500個設置したら
2日で消された 負荷軽減の極意
(1)Perlを使うなPHPで書け
(2)PHPはApacheのモジュールを使え >>22
FTPへのアップに一晩かかったってのに(泣 負荷かかる順は
Ruby>>Perl>>PHP>>>>>>>>>>>>Java
か? >>24
(プ
被害者は君じゃなくて"某無料スペース"の方。 >>21
2500個もの掲示板を何に使うんだ?
俺は都道府県掲示板っつーのを作った事があるが、掲示板タイトルを
それぞれ都道府県名に変えるだけでもウンザリしたよ。 >>17
問題ありますねぇ
この辺りはマニュアルを読んだ方がいいと思う
ソースを変更しないならshared_htmlに置かないで普通にCGIとして動かした方がいい >>29
専用サーバ借りてください。
つーか回線も要るけどな。
お前みたいな厨はホント邪魔。 レンタル掲示板するにしても、
2500個て・・・
1ユーザー、1スクリプトなんだぁw >>34
1ユーザ1スクリプトが当たり前でしょ?
それ以外何があるのさ >>21
その掲示板にバグが見つかったら、2500個すべて直すのか?
どうせ広告貼ってるんでしょ?
その広告がボツになったり、もっと良い広告があったら
2500個すべて張り直すのか?
申し込みがある度にアップするのもメンドイ
簡単な例をあげると
「魔法のあいらんど」
ttp://ip.tosp.co.jp/i.asp?i=ユーザー名
元は「i.asp」一個だけ >>40
あ・・・・・
今気付いた・・・・・
どうしよう・・・・・ 複数設置用を1個用に改造するのって簡単かな・・・・? 清々しいまでに阿呆だ。
まぁ取り合えず専鯖借りれ。話はそれからだ。 >>27
都道府県ということは47個だろ?なら5000個なんてとんでもない個数だな。。。 とうとう21は自分が禿であることをカミングアウトした訳だが。
−−−−−−−−−−このスレッドは終了しました−−−−−−−− つか、掲示板スクリプトにちょっと手直ししてやるだけで1つだけで複数の掲示板が使えるじゃん。
ファイル名、タイトル名などの情報をデータファイルに書き込んで、変数で取得したユーザーIDと一致すれば
それを適用すりゃいいんだし。
>>53
同意。どうせ汚染チェックすらしない糞スクリプトが出来るだけ。 mod_gz使って転送するかどうか迷っています。
gz読めるブラウザって、どのくらいの割合なんでしょうか。
また、gzする負荷と疥癬の負荷を考えると。ううむ
ケースバイケースですね。 軽い掲示板はここ行って
http://www.i-say.net/cgi/
これで検索しる。
HTML html シンプル、ツリー、iモード掲示板をチェックしてor検索ね。 sub{
}
を 全部 別ファイルに 分けるのは どうかな? >>60
大して知識も無いのに発言するのは止めたほうがいい
大多数の一般人に誤解を与えかねん 質問していいですか
仮に2500個の掲示板を設置するとして、
共用サーバでそれやったらアホだけど
専用サーバなら何の問題も無いかな?
ダウンしたりしないかな?
重くならない?
>>21
君はもうここに書かない方がいいよ。
君のためにも他の人のためにも。 荒らしまがいの糞レスが散らばってますが、
負荷軽減ってそもそも誰かのために不利になることってあります?
その筋の荒らしではないかと小一時間。
ソース書き直す必要がでてきたらめんどいってことかな。 >>62
あのお。なんのために「制御構造」とがあって、「くりかえし」ができるようになっているのか考えてことがありますか? >>65
共有サーバ使ってる時負荷大きいと同じサーバ上の他会員が迷惑すると思うが >>67
つーか意味わかんないんだけど
こちら小学生なんでもっとわかりやすく頼みます
実際に自前で鯖立ててやってみ。
そこまでできるようになったら知識もついて
もうちょっとましな方法が思いつくだろ。 >>70
幼女ならJAPU氏が優しく教えてくれるかもしれませんよ(藁 >>70
俺はオトコだ
名前は橋本秀明
年は11
鹿児島県在住じゃけぇ >>76
「負荷軽減対策」っつってんでしょ
レンタル掲示板関係はよそ行って下さい
−−−−−−−−−−このスレッドは終了しました−−−−−−−− 兎に角Yahooに倣え
和塩含めて、負荷軽減はかなり追求してるから apache軽量化するのが一番効果ある。
mod_perlより、普通のcgiのほうがトータルのスケーラビリティは
上という場合もある。
いらないモジュールは全て削る。
モジュールはスタティックにコンパイルする。
あと、httpd.confの書き方も重要。
perlで言えば、超軽量のhttpd+speedyCGI
これが最もサーバーに負荷をかけない。 phpでメソッド呼び出したときの内部変数って、メソッドが実行し終わったら
unset()されるのでしょうか。
たとえば、メソッド内でファイルを読み込んだ入りして、
場合によっては$hogeのサイズが100k超えたりするわけです。
それから、HTMLに書き出す内容をすべて変数に入れちゃって、あとでまとめて
echoする方法をとっていたりすると、結構その変数のサイズ大きくなりますよね。
ご教授お願いします。
大量のレコードを処理するときは、一行づつ読み込こめば、軽くなるよ
んで、出力するのだけ、メモリに入れればオッケーと思います 小学生またまた乱入。
要するに、いろいろな要因の絡み合いだから、場合によってってところだね。
0)使用言語の選択
1)プログラム(スクリプト)の設計
1-1) メモリ領域
1-2) CPU時間
3)アクセス数
4)サーバのキャパシティ
5)他には?
これをうまく図で表せればいいですね。僕はまだ習ってません。
>>86
だから、軽くなっても長くかかるのはどうかなぁと。
アクセス数が少ないサイトなら重くても速いのがいいんじゃぁと。
まあアクセス増えた後自分の首絞めたいならどうでも良いよ。
このタイトル、ひかれますね。
私は今、チャットの負荷軽減を頑張っています。
使用しているのはKENT-WEBのYY-CHAT。
現在は分割処理で
ログ表示CGI
フォーム部分CGI
書き込みCGI
退室CGI
入室前CGI
に分割させ、いらない機能はすべて取り外しました。
さらにこれから
(1)そのスクリプトをC言語化
(2)新規発言のみを読み込むJavaプログラムを追加
させようと考えています。 PHPですが、
$hoge = "<img src=\"$foobar\">\n";
と書くのと、
$hoge = "<img src=\"". $foobar ."\">\n";
と書く方法がありますが、
どちらがよいのでしょうか。
私は、エディタのハイライト機能で変数の色を変えていため、後者を使っています。
でもいっぱい変数を使う文字列だと、前者のほうが便利だね。 >>91
単純に、後者の方が動作が速いとどこかで聞いた記憶があるので、
いつも後者にするようにしてます。 >>91
$hoge = "<img src='$foobar'>\n";
という方法もある(たいしたこと無いが 書きやすいとか、なれている方でいいんでないの。
どっちが速いかなんて、体感じゃわからないでしょ。
ちなみに俺は
$hoge = '<img src="'.$foobar.'">';
こんな感じで書いてる。改行はつけないよ。
改行をつける場合は
$hoge = '<img src="'.$foobar.'">'."\n";
こんな感じ。他と分離させる。一目でわかりやすいから。 >>88
1ぎょうづず読み込んでも大して長くはならないけど?
メモリがパッツンパッツンサバでも、メモリ空間を節約出来るから、結果的に早くなるんです
>>96
漏れは掲示板のログファイルなんかは
1行づつ読み込んで、いるモノだけ配列に渡す。
インデックスのための小さなファイルなどは file()で一気に読み込む。
適宜使い分けている。
でも、上にもあるように、100KB位なら、一気に file() で読み込んでしまっても
いいのではないかと思ってしまう。
あとPHPで
while (!feof($fp)) {
$buffer = fgets($fp, 2048);
}
とかやってるんだけど、
fgetsせずに行をスキップするにはどうしたらいい? >>98
100KBで一気にですか、、、すごいですね。。。
負荷軽減対策委員会という意味ではなしかと。。。
>while (!feof($fp)) {
> $buffer = fgets($fp, 2048);
>}
>とかやってるんだけど、
>fgetsせずに行をスキップするにはどうしたらいい?
fgetcsvか、fseekしてfread。
たまに、初期設定で設定される変数の内容だけで、数十KBにもなるものがあるが、その方が問題だったりして。