X

read.cgi再開発スレ

■ このスレッドは過去ログ倉庫に格納されています
04/06/14 16:48ID:???
稼働させると問題が多発しているread.cgiを再開発等を話しあうスレッド
です。
アイデア等がありましたらこちらへどうぞ
04/06/14 16:48ID:pmCliEFX
★現状の問題点
 ・tiger鯖ではread.cgiを稼働させると高負荷になる。
 ・peko鯖の場合は負荷に関係なく落ちる確率が上がる。

★解決策
 ・tiger鯖用の低負荷なread.cgiの再開発
 ・peko鯖用のAMD64特化版read.cgiの再開発
04/06/14 16:49ID:???
関連発言
http://qb5.2ch.net/test/read.cgi/operate/1087192862/22
22 名前: ◆Reffi/bQ.c [sage] 投稿日:04/06/14(月) 16:02 ID:pmCliEFX
>21
peko鯖はだいぶ安定運用し始めているのであとはread.cgiの低負荷化さえ
出来ればいいんじゃないかと思ったり
read.cgiの低負荷版の開発は次の世代の若者に全て任せるという事で(ぉ

http://qb5.2ch.net/test/read.cgi/operate/1087192862/26
26 名前: ◆BDFCNV1.to [sage] 投稿日:04/06/14(月) 16:05 ID:MdNpKY8r
>>22
私が見るに、
read.cgi をpeko で動かしていると良く落ちるということは
負荷が問題じゃなく、相性の問題と、
つまり read.cgi にpeko だと顕在化する bug があるのか、

そんなとこだと思う。

read.cgi の書き直しは、そっすね次代の方々に譲るということで、
04/06/14 17:16ID:5L+V5RGQ
Wikiつくっときますた。

http://info.2ch.net/wiki/pukiwiki.php?read.cgi%BA%C6%B3%AB%C8%AF%A5%D7%A5%ED%A5%B8%A5%A7%A5%AF%A5%C8
04/06/14 17:27ID:pmCliEFX
>4
サンクスです。
そういえば、今read.cgiのソースは公開しても問題はないんでしょうか?
04/06/14 17:27ID:QI+w9kCc
C++だったっけ?
04/06/14 17:30ID:apGyzvXv
tiger?
04/06/14 17:34ID:pmCliEFX
>7
ありゃ
banana鯖でした(汗
というわけでwiki修正もよろしくお願いします。
04/06/14 17:35ID:MdNpKY8r
banana では何も起ってないでしょ
04/06/14 17:40ID:pmCliEFX
>9
人大杉スレ見たらbananaで止まっているのはbanana227だけであとはpeko鯖
ばっかりですね。
112chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2chTOOLYfE
垢版 |
04/06/14 17:40ID:6bU0okCe
とりあえずは無駄な機能をバッサリ切っちゃうだけでも違うと思うな。>read.cgi
04/06/14 17:47ID:MdNpKY8r
>>11
わかいのぉ

もっとドラスティックな変化が必要かと、

三回目は時間&お金&いろいろかけたところで
売るものは大したこと無いよ
132chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2chTOOLYfE
垢版 |
04/06/14 17:55ID:6bU0okCe
>>12
1から見直しって事ですか?
04/06/14 17:55ID:Af6Zv/ya
なんかよくわかりませんが
ここに資料っぽいブツを置いておきますね?

http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/25759.pdf
15root ★
垢版 |
04/06/14 20:09ID:???
個人的にはmmap()まわりが頻繁に呼ばれるところあたりかなぁと思っていたり。
16root ★
垢版 |
04/06/14 20:10ID:???
で、今のread.cgiではmmap()を使うか使わないかはは#defineで簡単に制御できるので、
そのうちmmap()を使わない版を入れてみようかなとは思っていたり。
17root ★
垢版 |
04/06/14 20:11ID:???
ということで、再度仕事にもどり。柿逃げスマソ。
04/06/14 21:24ID:tw3SCrNb
あ、面白そうなのが始まった。
こういうの興味あったんでコツコツ勉強してたんだよな。




Perlを。
04/06/14 22:48ID:6CAlwRLm
readはCで書かれてますからねぇ、、、
04/06/14 22:50ID:RyX4T1Gg
>>18
残念だな、若いの
read.cgiはCで書かれているから君の専門外だ
04/06/14 22:53ID:RyX4T1Gg
>>19
うぉ、ケコーン(w
04/06/14 23:07ID:yd0L768K
C言語なら毎日使ってるから少しは役に立てるかな?






組み込みの仕事だから標準関数なんて全然使ってないけど。
04/06/14 23:08ID:???
おっ、おもしろそう、

RDT板を残しとけばよかった
04/06/14 23:11ID:6CAlwRLm
実験室復活させよう実験室。(何
kusoしすてむの実験もかねちゃえ。(ゅ
04/06/14 23:31ID:tw3SCrNb
Cは大学時代の講義で基本的なこと覚えただけなんだよなぁ、、
でもCは覚えて絶対に損はしないから、なんとかついて行こう
と、思うだけ思ってみる。
04/06/14 23:35ID:vcU6bmnZ
よし!俺も暇になったら>25さんの後をついていこう!
俺だってCの基礎の基礎くらいは覚えてるし
この機会に勉強するぞ!
とか意気込んでみるテスト(。A 。 )
04/06/14 23:43ID:yd0L768K
Cのディープな世界へご案内〜。

64bit環境のプログラミングは未知の領域なので、ちょっと面白そう。
04/06/14 23:43ID:9Uw9a8Ur
某大学の情報工学科の首席なんで暇があったらお手伝いします
04/06/14 23:46ID:NTRhWAn+
包装大学ですか?
04/06/15 00:15ID:1gpHFYmh
新しいread.cgiも、呼ばれる度にdatを見に行って、シコシコHTMLに変換するタイプにするの?
04/06/15 04:52ID:960jW10v
C++やろうかな……いいかげんPHPオンリーを脱出せねば笑
04/06/15 04:55ID:960jW10v
あ、++じゃなくてCか。
04/06/15 09:14ID:EpZ2SqY+
ひまだから、64bit版read.cgiつーのつくってみるわ
pekoネイティブな、ちょっとまちなー
04/06/15 09:26ID:RaKG7Jd0
現行のread.cgiがどのような動作をしているのか、どこかで解説されてないかな?

現在の動作が分からないと、設計もできないんでないかい?
04/06/15 11:51ID:UN011hVj
>>33
改造コピペネタでつか?
>>8
なおしときますた。
04/06/15 22:29ID:IL33v7pF
>>30
dat読み込みから見直すんならbbs.cgiの方まで見直さなきゃいけないと思うんだけど
そこまで大改造はしないと思う。

banana鯖用のスリム化は別にやらなくても大丈夫らしい(>>9-10)だから
やることはAMD64特化版read.cgiってやつだけかな?
04/06/15 23:07ID:IL33v7pF
>>34
Perlで似せてread.cgi作った時は大体こんな感じの処理が必要だったけど。

各種設定
 背景色等の設定用にSETTING>TXT読込
 クッキーの読込

エラー判定
 datファイル読込・存在するかの判定
 無い場合は過去ログ倉庫に存在するかの判定

ヘッダ部出力
 datファイルのレス数を取得
 レス番の指定がある場合は出力範囲を算出
 ヘッダ部の100レス単位リンクの出力範囲を算出

レス部出力
 >1を表示するかの判定
 レスの[ここ壊れてます]判定
 メール欄がある場合の名前欄リンク化
 URL文字列のリンク化
 外部サイトのime.nuリンク補正
 レスアンカの補正
 長文省略判定

フッタ部出力
 datファイルのサイズを取得
 新着レスの表示/続きを読む 判定
 前100、後100 表示判定

フォーム編集
 timeパラメータ用に時刻取得
04/06/15 23:13ID:gjs0Ez/B
>37
解説ありがとん。なるほど、結構単純なようでややこしそうな処理だねぇ。
04/06/16 07:29ID:S1E/GVxP
>>36
#ifdef amd64
なんちゃら
#endif

#ifdef ia32
どんちゃら
#endif

とでもできませんかね。コンパイルがmakeを使用するようになっていればの話ですが。
04/06/16 13:25ID:BdIsacaQ
2ちゃんねるはガリガリに最適化されたmod_2chで動いてると思い込んでいただけに
ショックだ
04/06/16 14:05ID:S1E/GVxP
>>40
apache moduleの話は出てきては立ち消えになっているんですがねぇ。
どうなることやら。
04/06/16 14:47ID:I3gxbUF7
mod_isp2ch なんてのはあるみたいですけどねぇ。
ひとまず、AMD64 でも安定して動く read.cgi でしょうか。
それ以上のことは、掲示板システム全体の再構築が必要かと思いますので。
04/06/16 14:54ID:Qslk/4oM
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
printf(
"Content-Type: text/html; charset=Shift_JIS\n\n"
"<html><head><title>もうずっと人大杉</title></head>"
"<body><h1>もうずっと人大杉</h1></body></html>\n"
);
return EXIT_SUCCESS;
}
04/06/16 15:26ID:S1E/GVxP
>>42
では関連で。

bbs.cgi再開発プロジェクト 3
http://qb5.2ch.net/test/read.cgi/operate/1076666901/l50
04/06/16 22:35ID:+zyu8uBP
昔、UNIX板の有志が書いてたread.cgiのソースって、今も公開されてるんだっけ?
04/06/16 23:39ID:AvvVxDGU
だいぶVerが古くない?ソレ
04/06/17 00:49ID:m0BQmNBk
古かったと思う、>45-46
最新のは未公開、多分、
04/06/17 01:08ID:SgpcWH1q
とりあえずborlandのコンパイラを落として、暇を見つけつつ
基本構造のおさらいから始めてて、ふと思った。

これ、それなりの形が作れるようになった頃には
とっくに開発終了してるんじゃなかろうか。。

頑張れ、俺。
49root ★
垢版 |
04/06/17 12:04ID:???
>>16 で言及した、
mmap()を使用しないread.cgiをgame6サーバに実験的に入れてみた。
これでしばらく実験してみるということで。
04/06/17 21:32ID:FmSs8Ej1
とりあえず乙
04/06/17 23:45ID:t7lGzDRQ
32-bit 環境と 64-bit 環境での違いっていっても,変数サイズの違いぐらいで,
そんなに変わるわけでもないけど.って,それがこける原因じゃないよな......?
long とかポインタのサイズに依存するような処理って入ってたかな......?
52root ★
垢版 |
04/06/18 03:43ID:???
20日以上動いていたgame6が、read.cgiを上げたら半日で死にました。
mmap()ではなかったと。

ということで、
live8(read.cgiを動かしている)とcomic4(携帯の負荷に耐えている)で実績のある、
以下の設定を追加してみた。

(従来)
<IfModule prefork.c>
StartServers 64
MinSpareServers 5
MaxSpareServers 32
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 0
</IfModule>

(現在)
<IfModule prefork.c>
StartServers 64
MinSpareServers 5
MaxSpareServers 32
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 100000 <= 変更
MaxMemFree 2048 <= 追加
</IfModule>
04/06/18 07:04ID:hVC2DDBV
Re: huge memory leak in 2.0.x
http://www.mail-archive.com/dev@httpd.apache.org/msg21175.html

ということで,2.0.x には CGI を呼んだ際にメモリリークする問題があるそうで,
とりあえずは MaxRequestsPerChild / MaxMemFree での対処は
妥当なところなんでしょうけど,AMD64 以外ではこけるというところまでは
行ってなかったんですよね......?
54root ★
垢版 |
04/06/18 12:15ID:???
>>53
どうもです。CGIを呼ぶとメモリリークするのですか。

かつてのumaサーバ(Xeon 2.4G dual/メモリ2G/FreeBSD 4.x)では特に問題なかったですね。
FreeBSD 4.xと5.xの違いか、amd64とi386の違いか。
55root ★
垢版 |
04/06/18 12:21ID:???
ということで、read.cgiの現在のソースを
出来る範囲でもうすこしまじめにあたってみるか。
56root ★
垢版 |
04/06/18 12:24ID:???
…ということで、いったん退却。

【Project peko】2ch特化型サーバ構築作戦 Part13
http://qb5.2ch.net/test/read.cgi/operate/1085678587/963
963 名前:root ★[sage] 投稿日:04/06/18 11:54 ID:???
ということで、リモートからデバッガに落とせない状態なので、
いったんgame6のread.cgiを止めます。
04/06/18 15:51ID:hWX8B8oq
既出?
ttp://qb5.2ch.net/test/read.cgi/operate/1081010089/631
04/06/18 16:24ID:wGOM4U5h
>>57
hardをどうにかする、というのは基本的にあきらめたみたいだよ。
(これから新規に買うときは発注条件をなんとかする等で気をつけて欲しいけどね)
OSもどうなんだろう?live8は今の所問題ないし。。。

今は、opteron・apache・OS等の禁忌事項にread.cgiの処理が当てはまってるかどうかとか
そういうのを調べてみる時期なんじゃないのかなぁ??
(ソフトのことはよくわかりませんが)
04/06/18 16:28ID:8PwwrLl3
>>58
ていうか、現状何が問題なんでしょ。
read.cgiに限らず。
04/06/18 16:56ID:wGOM4U5h
>>59
わかる人が見ないことにはそのへんすらわからないだろうね。
ちなみに漏れは見てもわからんのは確実。がはは。
04/06/18 20:07ID:hVC2DDBV
オープンソースで改良作業が行われていた当時の read.cgi ソースはこちら.
http://gedoh.org/aki/2ch/current/bbs/

どこかで地雷を踏んでるのかねぇ......
62root ★
垢版 |
04/06/18 21:53ID:???
今まで「これをやると落ちる or 落ちる確率が間違いなくアップする」ものとしては、

・read.cgi
・fox.cgi

かなと。
04/06/18 23:43ID:BVlsSOIm
つーか、言語なんすか?perl?
Cなら協力できそうにないなぁ。。
04/06/19 02:10ID:nCKqpNRl
>61
うがー。malloc/free/memmset/memcpy/memcmp/memchrが。
65動け動けウゴウゴ2ちゃんねる
垢版 |
04/06/19 02:22ID:fE49sY3D
もうずっと人大杉 へ飛ばされる板のスレを見たいのですけど、
.datファイルのレスX番から50個のレスを読み込むにはどうしたらいいのでしょうか?
全部読み込まないと駄目なのですか?
04/06/19 02:33ID:PREKg3yO
>>65
質問・雑談スレ43@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1087488419/
04/06/19 18:02ID:ISKwYZkG
ここ見れ
http://makimo.to
68動け動けウゴウゴ2ちゃんねる
垢版 |
04/06/20 19:22ID:Hl0FuKj/
なーんで負荷が高いsports8とかで問題無く動いているread.cgiが
game6になった途端くたばるん?
最新型マザーボードが狂ってるんか?
04/06/21 19:15ID:KA2rqHCQ
面白い話題を発見しますた。
http://lists.freebsd.org/pipermail/freebsd-current/2004-June/029521.html
04/06/22 07:32ID:3OynsDNk
公開版ソースでは MAP_PRIVATE で mmap() してるみたいですが......
見たところ,マッピングされた領域に書き込みを行っていないようなので,
MAP_SHARED でいいのではないかと.mmap() 本来の仕様では
マッピングされた領域に書き込みを行わない限り MAP_SHARED も
MAP_PRIVATE も同じ挙動を示すはずですが,このあたりに地雷があるとすると
どうなるかわからないので.ちなみに,Apache(APR) では MAP_SHARED
で mmap() が実行されます.


>>69 ふむ,予想に反して mmap() が意外に遅いと......で,mmap() に
改善の余地があるのかないのか......という話のようですね.
とはいえ,カーネル時間の消費は mmap() の方が圧倒的に少ないので,
単一のプロセスをぶん回すような用途ならともかく,多数のプロセスを
同時実行するような用途ならその状況でも mmap() に利があるかとは思いますが.
71動け動けウゴウゴ2ちゃんねる
垢版 |
04/07/10 23:55ID:+aVWF3am
あい
72動け動けウゴウゴ2ちゃんねる
垢版 |
04/07/11 00:41ID:mttImHQI
あげ
04/07/11 12:41ID:8l5HhLcz
スレ立て時に強制sageを指定できるようにきぼんぬ。
そうしてread.cgi ver8.00はこれで決まり。
04/07/11 12:44ID:+1GopxFh
自分で書いてこんなのどうですかって持ってこないと話にならんでしょ
04/07/11 16:01ID:AtcN7RAV
大体それreadじゃなくってbbsの方の範疇だし。
76ヒロヒロ
垢版 |
04/07/25 03:09ID:wcxArYE2
ちょっとCをかじってたので協力できたら…
なんて考えていましたがはっきりいってわかんね〜(笑

mmap()って何なんでしょうか?
mallocとかまでしか着いていけませんでした

http://www.ebimemo.net/diary/?date=200303
04/07/25 04:29ID:mYOK5jTO
mmap()の意味も見つけられない人は、「ちょっとCをかじってた」とは言わない
ttp://www.google.com/search?lr=lang_ja&ie=Shift_JIS&oe=Shift_JIS&q=mmap
04/07/25 06:57ID:DrKl0ws3
ていうかこの期に及んで
「必要なのはC言語の知識というよりは高負荷環境を捌く知恵と経験」
ということに気づけなかった時点でイラネ
04/07/26 15:44ID:r8P0H4hI
前live5鯖でやってた
h ttp://鯖.2ch.net/板/read/dat.html
例)http://live5.2ch.net/livetbs/read/1074855449.html
あれはどうなった?
04/07/26 16:19ID:1+T2feK6
>>78
C版の開発はチューン次第ではメモリ不足の解消にもつながるでしょう
一般的に

size(perllccバイナリ)>>size(Cコードバイナリ)

だし
04/07/26 17:49ID:gi/OuU6A
>>78はCを否定しているのではないと思われ
04/07/30 19:00ID:vJQiud/i
ちょいとネタ振り.

mod_cgidso http://jbbs.livedoor.com/bbs/read.cgi/computer/2095/1051177958/129
    外部 CGI を実行ファイルではなく共有オブジェクトで作成し,fork(),exec() の
    オーバヘッドを解消するもの.CGI そのものをモジュール化すると,
    プログラム変更のたびにモジュール入れ替えのため Apache を再起動しなければ
    ならないが,これなら単に外部 CGI の共有オブジェクトの入れ替えだけで済む.

で,以前ソースをうpしていた鯖は現在亡くなってしまっていますが,

    mod_cgidso.c  (モジュールソース)
    dso-example.c  (これを利用した共有オブジェクト型 CGI のサンプル)
    read.tar.bz2  (>>61 のソースを基にこのモジュールに対応させたもの)

どこか適当な場所があればうpします......
83root ★
垢版 |
04/07/30 20:31ID:???
>>82
お、そっか、これ、改めていいかも。
どこかにうpしてほしいなと。
04/07/30 21:35ID:vJQiud/i
>>83 とりあえず臨時自宅鯖でうpしますた.

http://203.205.158.203/jikken/mod_cgidso.c  (モジュールソース)
http://203.205.158.203/jikken/dso-example.c  (これを利用した共有オブジェクト型 CGI のサンプル)
http://203.205.158.203/jikken/read.tar.bz2  (>>61 のソースを基にこのモジュールに対応させたもの)

DHCP の上 Dynamic DNS 使うほど本格運用するつもりもないんで,
IP 変わったりした際はご容赦を......
85root ★
垢版 |
04/07/31 01:09ID:???
>>84
ping とおらなくて、port 80も応答しないっす。
86root ★
垢版 |
04/07/31 01:23ID:???
再度やったらとれたです。どうも。
04/08/20 06:58ID:u+ITA5IG
【Project peko】スレの方は OS の話が進んでいるようなので,こちらで.

http://qb5.2ch.net/test/read.cgi/operate/1087666806/914n
>で、どうも、プロセスが多く起動・終了されるマシンで、落ちる可能性が上がるように見える。

ということなら,mod_cgidso で何とかなるのかな,という気もしますが......
04/09/02 12:34ID:OyZTjt7p
みゅ
89test
垢版 |
04/09/12 18:10:58ID:1KnFy6CR
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
90
垢版 |
04/09/29 16:27:06ID:X0OGoj+O

04/10/07 16:10:45ID:pKPRterT
保守
92動け動けウゴウゴ2ちゃんねる
垢版 |
04/10/12 19:48:41ID:Hwk5kW3F
http://piza.2ch.net/sakud/kako/957/957785425.html
↑このスレをread.cgiでみると全レス[ここ壊れています]になる

http://piza.2ch.net/test/read.cgi/sakud/957785425/
04/10/13 13:05:22ID:EnuR6XYy
html化されているログをread.cgiで読めることは
もともと保証されていないのだから「仕様」でしょう
94ひろゆき@どうやら管理人 ★
垢版 |
04/10/29 18:08:44ID:???
なにか問題あったら教えてくださいー。
04/10/29 18:14:20ID:sfwO8Jst
read.cgi ver7.31p (04/10/29)
04/10/29 18:24:32ID:/8fFQVIt
お、広告(?)が入ってる。
97root▲ ★
垢版 |
04/10/29 18:29:34ID:???
>>94
live8 (AMD64)のread.cgiを7.31pに更新しました。
これから memories 上の各バーチャルホストのも更新します。
04/10/29 18:29:43ID:IKjoEohX
■掲示板に戻る■ 関連ページ 全部 1- 最新50 [PR] 新潟ガンバレ. [PR]
04/10/29 18:30:48ID:sfwO8Jst
sports2
read.cgi ver6.01p (02/04/12)

(つД`)
04/10/29 18:32:22ID:LbiUEsnT
ワロタ
101ひろゆき@どうやら管理人 ★
垢版 |
04/10/29 18:54:41ID:???
あ、7.33にかわりましたー。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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