探検


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

1ジークハルト ◆VUxx/EwNXI
垢版 |
02/10/15 10:33ID:ifgLRUyb
サーバ上にPerlやPHPを置く場合、何よりも重視しなければ
ならないのはサーバへの「負荷」。
負荷の高いCGIの使用は削除対象となるのが目に見えてます。
負荷を軽減させるにはどうすればいいか?
どういう書き方をすればいいか?
そんな委員会を開設しました。
02/10/15 10:42ID:???
掲示板はYahooのジオボードでも使っているように.htmlファイルを作成するようにする
データベース系はGoogleのように検索されたものを必ずキャッシュして次回同じ語が検索された時に備える
02/10/15 10:44ID:???
いちいち負荷を気にしてるようじゃァ、やらないこった!
02/10/15 10:48ID:???
>>3
負荷軽減は速度アップに繋がる事が多い
5ジークハルト ◆VUxx/EwNXI
垢版 |
02/10/15 10:51ID:ifgLRUyb
>>2
なるほど、、、

>>3
負荷を気にする人のためのスレよ
02/10/15 10:52ID:???
負荷軽減と速度アップは相反することが多い。

アルゴリズムの工夫なら速度アップにつながる事が多い。
02/10/15 11:01ID:???
負荷かかる順番としては
Ruby>>Java>>Perl>>PHP>>>>>>>>>C++
と考えていい?
02/10/15 11:03ID:???
PHPでもXREAの凍結対象になる程かなり負荷かかるんですが
何かいい方法は?
02/10/15 11:07ID:???
>>4,>>6
どっちが正解?
02/10/15 12:42ID:???
やっぱPerlで掛け算とかは負荷になるのかな?
内部でOPコードが処理してるのなら足し算も掛け算も一緒だろうけど。
02/10/15 12:49ID:???
>>10
そうなん??
02/10/15 15:25ID:???
>>8
XREAってモジュールのやつはなくなったの?
02/10/15 15:26ID:???
>>12
え?モジュールって?
02/10/15 15:27ID:???
>>13
mod_phpで動かしてる鯖
02/10/15 15:28ID:???
>>13
XREAの規約に

●PHPの動かし方がわからないのですが?
public_html内で動作させる場合は、CGIとしてのみご利用可能です。
shared_htmlで動作させる場合は、モジュール版PHP(SafeMode付き)で
実行できます。

ってあったから
shared_html内に入れれば負荷は軽減できるはず。
02/10/15 15:30ID:???
>>15
まさかモジュール版とCGI版で同じソース使う気か?
(((( ;゚Д゚)))ガクガクブルブル
1713
垢版 |
02/10/15 16:37ID:???
>>15,>>16
shared_htmlって所に入れましたが同じソースで何か問題あるんですか
18AAAA
垢版 |
02/10/15 16:54ID:???
モジュール版ってCGIに比べてどれくらい負荷軽減出来るの?
3分の1くらいか?
02/10/15 17:22ID:???
やっぱ、重要なサイトは押さえておきたいな。
http://www.math.tohoku.ac.jp/~kuroki/WWW/HowToLighten.html
他にある?
02/10/15 17:35ID:???
>>18
http://perl.apache.org/start/tips/registry.html
の下の方に、hello.cgiがmod_perlだと、243/7.3倍に
なるそうだ。hello.cgiのコードも書いてあるけど、まあ、相当な
もんだなや。



02/10/15 17:35ID:???
>>19
某無料スペースで掲示板CGIを2500個設置したら
2日で消された
02/10/15 17:39ID:???
>>21
自業自得ってことで
02/10/15 17:40ID:???
負荷軽減の極意
(1)Perlを使うなPHPで書け
(2)PHPはApacheのモジュールを使え
2421
垢版 |
02/10/15 17:41ID:???
>>22
FTPへのアップに一晩かかったってのに(泣
25age
垢版 |
02/10/15 17:42ID:???
負荷かかる順は
Ruby>>Perl>>PHP>>>>>>>>>>>>Java
か?
02/10/15 18:00ID:???
>>24

(プ
被害者は君じゃなくて"某無料スペース"の方。
27_
垢版 |
02/10/15 19:18ID:???
>>21
2500個もの掲示板を何に使うんだ?
俺は都道府県掲示板っつーのを作った事があるが、掲示板タイトルを
それぞれ都道府県名に変えるだけでもウンザリしたよ。
02/10/15 20:30ID:???
>>23
Perlもモジュールで動かせるけどな
2921
垢版 |
02/10/15 20:32ID:???
>>27
レンタル掲示板のサービス
02/10/15 20:34ID:???
>>17
問題ありますねぇ
この辺りはマニュアルを読んだ方がいいと思う
ソースを変更しないならshared_htmlに置かないで普通にCGIとして動かした方がいい
02/10/15 20:35ID:???
>>29
(・∀・)カエレ!!
02/10/15 20:44ID:???
>>29
氏ね!
02/10/15 21:21ID:???
>>29
専用サーバ借りてください。
つーか回線も要るけどな。
お前みたいな厨はホント邪魔。
02/10/15 23:22ID:???
レンタル掲示板するにしても、
2500個て・・・

1ユーザー、1スクリプトなんだぁw
3521
垢版 |
02/10/15 23:37ID:???
>>34
1ユーザ1スクリプトが当たり前でしょ?
それ以外何があるのさ
02/10/15 23:39ID:???
>35=21
ある意味すげぇ
02/10/15 23:43ID:???
>>35

ワラタ
3821
垢版 |
02/10/15 23:56ID:???
>>36,>>37
ダメなの?
02/10/16 00:06ID:???
無料鯖の時点でダメ。
02/10/16 00:07ID:???
>>21
その掲示板にバグが見つかったら、2500個すべて直すのか?
どうせ広告貼ってるんでしょ?
その広告がボツになったり、もっと良い広告があったら
2500個すべて張り直すのか?
申し込みがある度にアップするのもメンドイ

簡単な例をあげると
「魔法のあいらんど」
ttp://ip.tosp.co.jp/i.asp?i=ユーザー名
元は「i.asp」一個だけ
4121
垢版 |
02/10/16 00:12ID:???
>>40
あ・・・・・
今気付いた・・・・・
どうしよう・・・・・
4221
垢版 |
02/10/16 00:15ID:???
複数設置用を1個用に改造するのって簡単かな・・・・?
02/10/16 00:23ID:???
>>42
そんな君にはこれがオススメ。
http://cgiroom.nu/list/level_up/room/index.htm
02/10/16 00:27ID:???
清々しいまでに阿呆だ。


まぁ取り合えず専鯖借りれ。話はそれからだ。
4521
垢版 |
02/10/16 00:34ID:???
>>44
専鯖借りたらPHP直してくれる?
46nobodyさん
垢版 |
02/10/16 00:34ID:b9+Rgnoa
>>27
都道府県ということは47個だろ?なら5000個なんてとんでもない個数だな。。。
02/10/16 00:35ID:???
>>45 ふざけんなボケ
4821
垢版 |
02/10/16 00:38ID:UJRd9C8p
>>47
うっさいハゲ氏ね
02/10/16 00:41ID:???
とうとう21は自分が禿であることをカミングアウトした訳だが。
02/10/16 01:26ID:???
>>46
つーか1つでできる
02/10/16 01:28ID:???


−−−−−−−−−−このスレッドは終了しました−−−−−−−−
52nobodyさん
垢版 |
02/10/16 06:19ID:z+MacZfD
つか、掲示板スクリプトにちょっと手直ししてやるだけで1つだけで複数の掲示板が使えるじゃん。
ファイル名、タイトル名などの情報をデータファイルに書き込んで、変数で取得したユーザーIDと一致すれば
それを適用すりゃいいんだし。
02/10/16 06:31ID:???
* 危険 *

厨に知識を与えないで下さい。
02/10/16 07:08ID:???
>>53
同意。どうせ汚染チェックすらしない糞スクリプトが出来るだけ。
551
垢版 |
02/10/16 08:36ID:???
あのー、
負荷軽減対策スレなんですけど(汗
56nobodyさん
垢版 |
02/10/16 09:31ID:8AIPTE76
mod_gz使って転送するかどうか迷っています。
gz読めるブラウザって、どのくらいの割合なんでしょうか。
また、gzする負荷と疥癬の負荷を考えると。ううむ
ケースバイケースですね。
02/10/16 10:08ID:???
>>56
gz問題無いと思うよ
58nobodyさん
垢版 |
02/10/16 10:24ID:pcpH7Mcq
軽い掲示板はここ行って
http://www.i-say.net/cgi/

これで検索しる。
HTML html
02/10/16 10:28ID:???
シンプル、ツリー、iモード掲示板をチェックしてor検索ね。
60マリモーマ
垢版 |
02/10/16 10:32ID:jc3XYznE
sub{
}
を 全部 別ファイルに 分けるのは どうかな?
02/10/16 10:57ID:???
>>60
大して知識も無いのに発言するのは止めたほうがいい
大多数の一般人に誤解を与えかねん
6221
垢版 |
02/10/16 11:03ID:???
質問していいですか

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

>>21
君はもうここに書かない方がいいよ。
君のためにも他の人のためにも。
6421
垢版 |
02/10/16 11:45ID:???
>>63
頼みます 教えてください!
02/10/16 11:51ID:???
荒らしまがいの糞レスが散らばってますが、
負荷軽減ってそもそも誰かのために不利になることってあります?
その筋の荒らしではないかと小一時間。
02/10/16 11:53ID:???

ソース書き直す必要がでてきたらめんどいってことかな。
67nobodyさん
垢版 |
02/10/16 12:06ID:8AIPTE76
>>62
あのお。なんのために「制御構造」とがあって、「くりかえし」ができるようになっているのか考えてことがありますか?
68nobodyさん
垢版 |
02/10/16 12:08ID:8AIPTE76
>>57
サンクス。gzやってみます。
02/10/16 12:10ID:???
>>65
共有サーバ使ってる時負荷大きいと同じサーバ上の他会員が迷惑すると思うが
7021
垢版 |
02/10/16 12:11ID:???
>>67
つーか意味わかんないんだけど
こちら小学生なんでもっとわかりやすく頼みます
02/10/16 12:14ID:???

実際に自前で鯖立ててやってみ。
そこまでできるようになったら知識もついて
もうちょっとましな方法が思いつくだろ。
72nobodyさん
垢版 |
02/10/16 12:23ID:CHU8gz5p
>>70
幼女ならJAPU氏が優しく教えてくれるかもしれませんよ(藁
7321
垢版 |
02/10/16 12:59ID:???
>>70
俺はオトコだ

名前は橋本秀明
年は11
鹿児島県在住じゃけぇ
02/10/16 13:01ID:???
>>73
自作自演?
02/10/16 13:02ID:???
鹿児島の人間じゃないことだけは確かなようだ。
7621
垢版 |
02/10/16 13:04ID:???
>>74
誰とだ

>>75
何で分かるんだよ?
02/10/16 13:06ID:???
>>76
「負荷軽減対策」っつってんでしょ
レンタル掲示板関係はよそ行って下さい
78nobodyさん
垢版 |
02/10/16 14:02ID:YPyufUJw
「Writing Efficient PHP」とか。
http://www-105.ibm.com/developerworks/education.nsf/web-onlinecourse-bytitle/729C6A8BF14CE7F086256BF1006711EA?OpenDocument
02/10/16 14:22ID:???


−−−−−−−−−−このスレッドは終了しました−−−−−−−−
02/10/16 14:23ID:???
兎に角Yahooに倣え
和塩含めて、負荷軽減はかなり追求してるから
02/10/16 15:40ID:???
小学生で引き篭もりでつか。
02/10/16 15:52ID:???
apache軽量化するのが一番効果ある。
mod_perlより、普通のcgiのほうがトータルのスケーラビリティは
上という場合もある。
いらないモジュールは全て削る。
モジュールはスタティックにコンパイルする。
あと、httpd.confの書き方も重要。
perlで言えば、超軽量のhttpd+speedyCGI
これが最もサーバーに負荷をかけない。
02/10/16 16:00ID:???
>>82 を負荷軽減対策委員長に命ずる
02/10/16 16:49ID:???
SpeedyCGIはお手軽だねぇ
85nobodyさん
垢版 |
02/10/16 18:00ID:8AIPTE76
phpでメソッド呼び出したときの内部変数って、メソッドが実行し終わったら
unset()されるのでしょうか。

たとえば、メソッド内でファイルを読み込んだ入りして、
場合によっては$hogeのサイズが100k超えたりするわけです。

それから、HTMLに書き出す内容をすべて変数に入れちゃって、あとでまとめて
echoする方法をとっていたりすると、結構その変数のサイズ大きくなりますよね。

ご教授お願いします。
02/10/16 19:21ID:???
大量のレコードを処理するときは、一行づつ読み込こめば、軽くなるよ
んで、出力するのだけ、メモリに入れればオッケーと思います
02/10/16 21:33ID:???
小学生またまた乱入。
要するに、いろいろな要因の絡み合いだから、場合によってってところだね。
0)使用言語の選択
1)プログラム(スクリプト)の設計
1-1) メモリ領域
1-2) CPU時間
3)アクセス数
4)サーバのキャパシティ
5)他には?
これをうまく図で表せればいいですね。僕はまだ習ってません。


02/10/16 21:35ID:???
>>86
だから、軽くなっても長くかかるのはどうかなぁと。
アクセス数が少ないサイトなら重くても速いのがいいんじゃぁと。
02/10/16 22:25ID:???
まあアクセス増えた後自分の首絞めたいならどうでも良いよ。
90nobodyさん
垢版 |
02/10/16 22:33ID:vfA8qHJl
このタイトル、ひかれますね。
私は今、チャットの負荷軽減を頑張っています。
使用しているのはKENT-WEBのYY-CHAT。
現在は分割処理で
ログ表示CGI
フォーム部分CGI
書き込みCGI
退室CGI
入室前CGI
に分割させ、いらない機能はすべて取り外しました。
さらにこれから
(1)そのスクリプトをC言語化
(2)新規発言のみを読み込むJavaプログラムを追加
させようと考えています。
91nobodyさん
垢版 |
02/10/16 22:43ID:QZ0dtDWe
PHPですが、
$hoge = "<img src=\"$foobar\">\n";
と書くのと、
$hoge = "<img src=\"". $foobar ."\">\n";
と書く方法がありますが、
どちらがよいのでしょうか。

私は、エディタのハイライト機能で変数の色を変えていため、後者を使っています。
でもいっぱい変数を使う文字列だと、前者のほうが便利だね。
02/10/16 23:12ID:???
このスレの中で>>1は一度も役に立っていない
93nobodyさん
垢版 |
02/10/16 23:21ID:YIcW4FL9
>>91
単純に、後者の方が動作が速いとどこかで聞いた記憶があるので、
いつも後者にするようにしてます。
02/10/16 23:29ID:???
>>91
$hoge = "<img src='$foobar'>\n";
という方法もある(たいしたこと無いが
95nobodyさん
垢版 |
02/10/16 23:44ID:wbW/xBZm
書きやすいとか、なれている方でいいんでないの。
どっちが速いかなんて、体感じゃわからないでしょ。

ちなみに俺は
$hoge = '<img src="'.$foobar.'">';
こんな感じで書いてる。改行はつけないよ。
改行をつける場合は
$hoge = '<img src="'.$foobar.'">'."\n";
こんな感じ。他と分離させる。一目でわかりやすいから。
96nobodyさん
垢版 |
02/10/17 00:08ID:vMdIvLO8
>>88
1ぎょうづず読み込んでも大して長くはならないけど?
メモリがパッツンパッツンサバでも、メモリ空間を節約出来るから、結果的に早くなるんです
02/10/17 00:15ID:???
>>92
あはは
98nobodyさん
垢版 |
02/10/17 00:21ID:UE/uqZMn
>>96
漏れは掲示板のログファイルなんかは
1行づつ読み込んで、いるモノだけ配列に渡す。

インデックスのための小さなファイルなどは file()で一気に読み込む。

適宜使い分けている。

でも、上にもあるように、100KB位なら、一気に file() で読み込んでしまっても
いいのではないかと思ってしまう。

あとPHPで

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

>while (!feof($fp)) {
>  $buffer = fgets($fp, 2048);
>}
>とかやってるんだけど、
>fgetsせずに行をスキップするにはどうしたらいい?

fgetcsvか、fseekしてfread。
100nobodyさん
垢版 |
02/10/17 07:49ID:???
たまに、初期設定で設定される変数の内容だけで、数十KBにもなるものがあるが、その方が問題だったりして。
02/10/17 09:04ID:???
>>92
あいたたた・・・

じゃせめてこのスレの内容まとめて
負荷軽減対策委員会の公式サイトでも起ちあげますか・・
レスを投稿する


ニューススポーツなんでも実況