1read 100read
2012年6月WebProg461: ★負荷軽減対策委員会(Perl、PHP)★ (816) TOP カテ一覧 スレ一覧 2ch元 削除依頼
【ECサイト】Live Commerce1号店 (389)
RSS/RDF (665)
検索エンジンをつくりたい (274)
組み込み型全文検索エンジンSenna (268)
■■これから食っていける技術の組合せは?■■ (357)
CGIでショッピングカートを作るスレ (265)

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


1 :02/10/15 〜 最終レス :10/11/02
サーバ上にPerlやPHPを置く場合、何よりも重視しなければ
ならないのはサーバへの「負荷」。
負荷の高いCGIの使用は削除対象となるのが目に見えてます。
負荷を軽減させるにはどうすればいいか?
どういう書き方をすればいいか?
そんな委員会を開設しました。

2 :
掲示板はYahooのジオボードでも使っているように.htmlファイルを作成するようにする
データベース系はGoogleのように検索されたものを必ずキャッシュして次回同じ語が検索された時に備える

3 :
いちいち負荷を気にしてるようじゃァ、やらないこった!

4 :
>>3
負荷軽減は速度アップに繋がる事が多い

5 :
>>2
なるほど、、、
>>3
負荷を気にする人のためのスレよ

6 :
負荷軽減と速度アップは相反することが多い。
アルゴリズムの工夫なら速度アップにつながる事が多い。

7 :
負荷かかる順番としては
Ruby>>Java>>Perl>>PHP>>>>>>>>>C++
と考えていい?

8 :
PHPでもXREAの凍結対象になる程かなり負荷かかるんですが
何かいい方法は?

9 :
>>4,>>6
どっちが正解?

10 :
やっぱPerlで掛け算とかは負荷になるのかな?
内部でOPコードが処理してるのなら足し算も掛け算も一緒だろうけど。

11 :
>>10
そうなん??

12 :
>>8
XREAってモジュールのやつはなくなったの?

13 :
>>12
え?モジュールって?

14 :
>>13
mod_phpで動かしてる鯖

15 :
>>13
XREAの規約に
●PHPの動かし方がわからないのですが?
public_html内で動作させる場合は、CGIとしてのみご利用可能です。
shared_htmlで動作させる場合は、モジュール版PHP(SafeMode付き)で
実行できます。
ってあったから
shared_html内に入れれば負荷は軽減できるはず。

16 :
>>15
まさかモジュール版とCGI版で同じソース使う気か?
(((( ;゚Д゚)))ガクガクブルブル

17 :
>>15,>>16
shared_htmlって所に入れましたが同じソースで何か問題あるんですか

18 :
モジュール版ってCGIに比べてどれくらい負荷軽減出来るの?
3分の1くらいか?

19 :
やっぱ、重要なサイトは押さえておきたいな。
http://www.math.tohoku.ac.jp/~kuroki/WWW/HowToLighten.html
他にある?

20 :
>>18
http://perl.apache.org/start/tips/registry.html
の下の方に、hello.cgiがmod_perlだと、243/7.3倍に
なるそうだ。hello.cgiのコードも書いてあるけど、まあ、相当な
もんだなや。

21 :
>>19
某無料スペースで掲示板CGIを2500個設置したら
2日で消された

22 :
>>21
自業自得ってことで

23 :
負荷軽減の極意
(1)Perlを使うなPHPで書け
(2)PHPはApacheのモジュールを使え

24 :
>>22
FTPへのアップに一晩かかったってのに(泣

25 :
負荷かかる順は
Ruby>>Perl>>PHP>>>>>>>>>>>>Java
か?

26 :
>>24
(プ
被害者は君じゃなくて"某無料スペース"の方。

27 :
>>21
2500個もの掲示板を何に使うんだ?
俺は都道府県掲示板っつーのを作った事があるが、掲示板タイトルを
それぞれ都道府県名に変えるだけでもウンザリしたよ。

28 :
>>23
Perlもモジュールで動かせるけどな

29 :
>>27
レンタル掲示板のサービス

30 :
>>17
問題ありますねぇ
この辺りはマニュアルを読んだ方がいいと思う
ソースを変更しないならshared_htmlに置かないで普通にCGIとして動かした方がいい

31 :
>>29
(・∀・)カエレ!!

32 :
>>29


33 :
>>29
専用サーバ借りてください。
つーか回線も要るけどな。
お前みたいな厨はホント邪魔。

34 :
レンタル掲示板するにしても、
2500個て・・・
1ユーザー、1スクリプトなんだぁw

35 :
>>34
1ユーザ1スクリプトが当たり前でしょ?
それ以外何があるのさ

36 :
>35=21
ある意味すげぇ

37 :
>>35
ワラタ

38 :
>>36,>>37
ダメなの?

39 :
無料鯖の時点でダメ。

40 :
>>21
その掲示板にバグが見つかったら、2500個すべて直すのか?
どうせ広告貼ってるんでしょ?
その広告がボツになったり、もっと良い広告があったら
2500個すべて張り直すのか?
申し込みがある度にアップするのもメンドイ
簡単な例をあげると
「魔法のあいらんど」
ttp://ip.tosp.co.jp/i.asp?i=ユーザー名
元は「i.asp」一個だけ

41 :
>>40
あ・・・・・
今気付いた・・・・・
どうしよう・・・・・

42 :
複数設置用を1個用に改造するのって簡単かな・・・・?

43 :
>>42
そんな君にはこれがオススメ。
http://cgiroom.nu/list/level_up/room/index.htm

44 :
清々しいまでに阿呆だ。
まぁ取り合えず専鯖借りれ。話はそれからだ。

45 :
>>44
専鯖借りたらPHP直してくれる?

46 :
>>27
都道府県ということは47個だろ?なら5000個なんてとんでもない個数だな。。。

47 :
>>45 ふざけんなボケ

48 :
>>47
うっさいハゲ

49 :
とうとう21は自分が禿であることをカミングアウトした訳だが。

50 :
>>46
つーか1つでできる

51 :

−−−−−−−−−−このスレッドは終了しました−−−−−−−−

52 :
つか、掲示板スクリプトにちょっと手直ししてやるだけで1つだけで複数の掲示板が使えるじゃん。
ファイル名、タイトル名などの情報をデータファイルに書き込んで、変数で取得したユーザーIDと一致すれば
それを適用すりゃいいんだし。

53 :
* 危険 *
厨に知識を与えないで下さい。

54 :
>>53
同意。どうせ汚染チェックすらしない糞スクリプトが出来るだけ。

55 :
あのー、
負荷軽減対策スレなんですけど(汗

56 :
mod_gz使って転送するかどうか迷っています。
gz読めるブラウザって、どのくらいの割合なんでしょうか。
また、gzする負荷と疥癬の負荷を考えると。ううむ
ケースバイケースですね。

57 :
>>56
gz問題無いと思うよ

58 :
軽い掲示板はここ行って
http://www.i-say.net/cgi/
これで検索しる。
HTML html

59 :
シンプル、ツリー、iモード掲示板をチェックしてor検索ね。

60 :
sub{
}
を 全部 別ファイルに 分けるのは どうかな?

61 :
>>60
大して知識も無いのに発言するのは止めたほうがいい
大多数の一般人に誤解を与えかねん

62 :
質問していいですか
仮に2500個の掲示板を設置するとして、
共用サーバでそれやったらアホだけど
専用サーバなら何の問題も無いかな?
ダウンしたりしないかな?
重くならない?

63 :

>>21
君はもうここに書かない方がいいよ。
君のためにも他の人のためにも。

64 :
>>63
頼みます 教えてください!

65 :
荒らしまがいの糞レスが散らばってますが、
負荷軽減ってそもそも誰かのために不利になることってあります?
その筋の荒らしではないかと小一時間。

66 :

ソース書き直す必要がでてきたらめんどいってことかな。

67 :
>>62
あのお。なんのために「制御構造」とがあって、「くりかえし」ができるようになっているのか考えてことがありますか?

68 :
>>57
サンクス。gzやってみます。

69 :
>>65
共有サーバ使ってる時負荷大きいと同じサーバ上の他会員が迷惑すると思うが

70 :
>>67
つーか意味わかんないんだけど
こちら小学生なんでもっとわかりやすく頼みます

71 :

実際に自前で鯖立ててやってみ。
そこまでできるようになったら知識もついて
もうちょっとましな方法が思いつくだろ。

72 :
>>70
ならJAPU氏が優しく教えてくれるかもしれませんよ(藁

73 :
>>70
俺はオトコだ
名前は橋本秀明
年は11
鹿児島県在住じゃけぇ

74 :
>>73
自作自演?

75 :
鹿児島の人間じゃないことだけは確かなようだ。

76 :
>>74
誰とだ
>>75
何で分かるんだよ?

77 :
>>76
「負荷軽減対策」っつってんでしょ
レンタル掲示板関係はよそ行って下さい

78 :
「Writing Efficient PHP」とか。
http://www-105.ibm.com/developerworks/education.nsf/web-onlinecourse-bytitle/729C6A8BF14CE7F086256BF1006711EA?OpenDocument

79 :

−−−−−−−−−−このスレッドは終了しました−−−−−−−−

80 :
兎に角Yahooに倣え
和塩含めて、負荷軽減はかなり追求してるから

81 :
小学生で引き篭もりでつか。

82 :
apache軽量化するのが一番効果ある。
mod_perlより、普通のcgiのほうがトータルのスケーラビリティは
上という場合もある。
いらないモジュールは全て削る。
モジュールはスタティックにコンパイルする。
あと、httpd.confの書き方も重要。
perlで言えば、超軽量のhttpd+speedyCGI
これが最もサーバーに負荷をかけない。

83 :
>>82 を負荷軽減対策委員長に命ずる

84 :
SpeedyCGIはお手軽だねぇ

85 :
phpでメソッド呼び出したときの内部変数って、メソッドが実行し終わったら
unset()されるのでしょうか。
たとえば、メソッド内でファイルを読み込んだ入りして、
場合によっては$hogeのサイズが100k超えたりするわけです。
それから、HTMLに書き出す内容をすべて変数に入れちゃって、あとでまとめて
echoする方法をとっていたりすると、結構その変数のサイズ大きくなりますよね。
ご教授お願いします。

86 :
大量のレコードを処理するときは、一行づつ読み込こめば、軽くなるよ
んで、出力するのだけ、メモリに入れればオッケーと思います

87 :
小学生またまた乱入。
要するに、いろいろな要因の絡み合いだから、場合によってってところだね。
0)使用言語の選択
1)プログラム(スクリプト)の設計
1-1) メモリ領域
1-2) CPU時間
3)アクセス数
4)サーバのキャパシティ
5)他には?
これをうまく図で表せればいいですね。僕はまだ習ってません。

88 :
>>86
だから、軽くなっても長くかかるのはどうかなぁと。
アクセス数が少ないサイトなら重くても速いのがいいんじゃぁと。

89 :
まあアクセス増えた後自分の首絞めたいならどうでも良いよ。

90 :
このタイトル、ひかれますね。
私は今、チャットの負荷軽減を頑張っています。
使用しているのはKENT-WEBのYY-CHAT。
現在は分割処理で
ログ表示CGI
フォーム部分CGI
書き込みCGI
退室CGI
入室前CGI
に分割させ、いらない機能はすべて取り外しました。
さらにこれから
(1)そのスクリプトをC言語化
(2)新規発言のみを読み込むJavaプログラムを追加
させようと考えています。

91 :
PHPですが、
$hoge = "<img src=\"$foobar\">\n";
と書くのと、
$hoge = "<img src=\"". $foobar ."\">\n";
と書く方法がありますが、
どちらがよいのでしょうか。
私は、エディタのハイライト機能で変数の色を変えていため、後者を使っています。
でもいっぱい変数を使う文字列だと、前者のほうが便利だね。

92 :
このスレの中で>>1は一度も役に立っていない

93 :
>>91
単純に、後者の方が動作が速いとどこかで聞いた記憶があるので、
いつも後者にするようにしてます。

94 :
>>91
$hoge = "<img src='$foobar'>\n";
という方法もある(たいしたこと無いが

95 :
書きやすいとか、なれている方でいいんでないの。
どっちが速いかなんて、体感じゃわからないでしょ。
ちなみに俺は
$hoge = '<img src="'.$foobar.'">';
こんな感じで書いてる。改行はつけないよ。
改行をつける場合は
$hoge = '<img src="'.$foobar.'">'."\n";
こんな感じ。他と分離させる。一目でわかりやすいから。

96 :
>>88
1ぎょうづず読み込んでも大して長くはならないけど?
メモリがパッツンパッツンサバでも、メモリ空間を節約出来るから、結果的に早くなるんです


97 :
>>92
あはは

98 :
>>96
漏れは掲示板のログファイルなんかは
1行づつ読み込んで、いるモノだけ配列に渡す。
インデックスのための小さなファイルなどは file()で一気に読み込む。
適宜使い分けている。
でも、上にもあるように、100KB位なら、一気に file() で読み込んでしまっても
いいのではないかと思ってしまう。
あとPHPで
while (!feof($fp)) {
  $buffer = fgets($fp, 2048);
}
とかやってるんだけど、
fgetsせずに行をスキップするにはどうしたらいい?

99 :
>>98
100KBで一気にですか、、、すごいですね。。。
負荷軽減対策委員会という意味ではなしかと。。。
>while (!feof($fp)) {
>  $buffer = fgets($fp, 2048);
>}
>とかやってるんだけど、
>fgetsせずに行をスキップするにはどうしたらいい?
fgetcsvか、fseekしてfread。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
著作権表示消してもいいCGIスクリプト (219)
Drupal node 8 (922)
一番汚いコードでHello Worldを書いたやつが勝ち (212)
●●Perlって死滅しちゃうの????●● (208)
(;・∀・)また、騙されたの? (520)
【SG】fusianasanの仕様を考えてみるスレ【SG】 (255)
--log9.info------------------
WXG for Linux/FreeBSD (639)
実用耐えうる ICQ Client (493)
NetBSDをデスクトップ環境として常用するスレ (310)
Sun Microsystems 最大の企業 (256)
ItaniumをUNIXで使うスレ (779)
FreeBSD使ってて「こうすれば普及する」と思った時 (211)
P2Pによる2chの展開 (662)
UNIXER応援スレッド (359)
■■■X11不要論■■■R4■■■ (333)
どうしてUNIXユーザーはキモいの? (210)
自分の情報整理スタイルを晒そうよ 4 (591)
日記観察 その捌 (585)
なぜUNIXはwindowsに敗北しているのか?4 (551)
地検特捜部のガサに耐えうるサーバ構築 (300)
OpenVPN (533)
UNIXマシンのある部屋をみせるスレPart.01 (233)
--log55.com------------------
ボランティアエキストラについて語ろう 第3現場
[創薬]治験について50[ボランティア]
ボランティアエキストラについて語ろう 第2現場
[創薬]治験について50[ボランティア]
[創薬]治験について49[ボランティア]
[創薬]治験について48[ボランティア]
【ヘルパー】訪問介護員の雑談&質問スレッド33
『どちらが』ワタミvsサニーライフ『ブラック』