X



トップページ運用情報
1001コメント303KB

read.cgi再開発スレ

■ このスレッドは過去ログ倉庫に格納されています
0001reffi@報告人 ★
垢版 |
04/06/14 16:48ID:???
稼働させると問題が多発しているread.cgiを再開発等を話しあうスレッド
です。
アイデア等がありましたらこちらへどうぞ
0034動け動けウゴウゴ2ちゃんねる
垢版 |
04/06/15 09:26ID:RaKG7Jd0
現行のread.cgiがどのような動作をしているのか、どこかで解説されてないかな?

現在の動作が分からないと、設計もできないんでないかい?
0036考えるお馬●さん ◆paperNoNNo
垢版 |
04/06/15 22:29ID:IL33v7pF
>>30
dat読み込みから見直すんならbbs.cgiの方まで見直さなきゃいけないと思うんだけど
そこまで大改造はしないと思う。

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

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

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

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

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

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

フォーム編集
 timeパラメータ用に時刻取得
0039動け動けウゴウゴ2ちゃんねる
垢版 |
04/06/16 07:29ID:S1E/GVxP
>>36
#ifdef amd64
なんちゃら
#endif

#ifdef ia32
どんちゃら
#endif

とでもできませんかね。コンパイルがmakeを使用するようになっていればの話ですが。
0042未承諾広告※ ◆TWARamEjuA
垢版 |
04/06/16 14:47ID:I3gxbUF7
mod_isp2ch なんてのはあるみたいですけどねぇ。
ひとまず、AMD64 でも安定して動く read.cgi でしょうか。
それ以上のことは、掲示板システム全体の再構築が必要かと思いますので。
0043動け動けウゴウゴ2ちゃんねる
垢版 |
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;
}
00477M. ◆dq7M./4Uw.
垢版 |
04/06/17 00:49ID:m0BQmNBk
古かったと思う、>45-46
最新のは未公開、多分、
0048考えるお馬●さん ◆paperNoNNo
垢版 |
04/06/17 01:08ID:SgpcWH1q
とりあえずborlandのコンパイラを落として、暇を見つけつつ
基本構造のおさらいから始めてて、ふと思った。

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

頑張れ、俺。
0049root ★
垢版 |
04/06/17 12:04ID:???
>>16 で言及した、
mmap()を使用しないread.cgiをgame6サーバに実験的に入れてみた。
これでしばらく実験してみるということで。
0051 ◆cZfSunOs.U
垢版 |
04/06/17 23:45ID:t7lGzDRQ
32-bit 環境と 64-bit 環境での違いっていっても,変数サイズの違いぐらいで,
そんなに変わるわけでもないけど.って,それがこける原因じゃないよな......?
long とかポインタのサイズに依存するような処理って入ってたかな......?
0052root ★
垢版 |
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>
0053 ◆cZfSunOs.U
垢版 |
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 以外ではこけるというところまでは
行ってなかったんですよね......?
0054root ★
垢版 |
04/06/18 12:15ID:???
>>53
どうもです。CGIを呼ぶとメモリリークするのですか。

かつてのumaサーバ(Xeon 2.4G dual/メモリ2G/FreeBSD 4.x)では特に問題なかったですね。
FreeBSD 4.xと5.xの違いか、amd64とi386の違いか。
0055root ★
垢版 |
04/06/18 12:21ID:???
ということで、read.cgiの現在のソースを
出来る範囲でもうすこしまじめにあたってみるか。
0056root ★
垢版 |
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を止めます。
0058 ◆HETAREzfq.
垢版 |
04/06/18 16:24ID:wGOM4U5h
>>57
hardをどうにかする、というのは基本的にあきらめたみたいだよ。
(これから新規に買うときは発注条件をなんとかする等で気をつけて欲しいけどね)
OSもどうなんだろう?live8は今の所問題ないし。。。

今は、opteron・apache・OS等の禁忌事項にread.cgiの処理が当てはまってるかどうかとか
そういうのを調べてみる時期なんじゃないのかなぁ??
(ソフトのことはよくわかりませんが)
0060 ◆HETAREzfq.
垢版 |
04/06/18 16:56ID:wGOM4U5h
>>59
わかる人が見ないことにはそのへんすらわからないだろうね。
ちなみに漏れは見てもわからんのは確実。がはは。
0062root ★
垢版 |
04/06/18 21:53ID:???
今まで「これをやると落ちる or 落ちる確率が間違いなくアップする」ものとしては、

・read.cgi
・fox.cgi

かなと。
0065動け動けウゴウゴ2ちゃんねる
垢版 |
04/06/19 02:22ID:fE49sY3D
もうずっと人大杉 へ飛ばされる板のスレを見たいのですけど、
.datファイルのレスX番から50個のレスを読み込むにはどうしたらいいのでしょうか?
全部読み込まないと駄目なのですか?
0068動け動けウゴウゴ2ちゃんねる
垢版 |
04/06/20 19:22ID:Hl0FuKj/
なーんで負荷が高いsports8とかで問題無く動いているread.cgiが
game6になった途端くたばるん?
最新型マザーボードが狂ってるんか?
0070 ◆cZfSunOs.U
垢版 |
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() に利があるかとは思いますが.
0071動け動けウゴウゴ2ちゃんねる
垢版 |
04/07/10 23:55ID:+aVWF3am
あい
0072動け動けウゴウゴ2ちゃんねる
垢版 |
04/07/11 00:41ID:mttImHQI
あげ
00757M. ◆dq7M./4Uw.
垢版 |
04/07/11 16:01ID:AtcN7RAV
大体それreadじゃなくってbbsの方の範疇だし。
0076ヒロヒロ
垢版 |
04/07/25 03:09ID:wcxArYE2
ちょっとCをかじってたので協力できたら…
なんて考えていましたがはっきりいってわかんね〜(笑

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

http://www.ebimemo.net/diary/?date=200303
0077動け動けウゴウゴ2ちゃんねる
垢版 |
04/07/25 04:29ID:mYOK5jTO
mmap()の意味も見つけられない人は、「ちょっとCをかじってた」とは言わない
ttp://www.google.com/search?lr=lang_ja&ie=Shift_JIS&oe=Shift_JIS&q=mmap
0078動け動けウゴウゴ2ちゃんねる
垢版 |
04/07/25 06:57ID:DrKl0ws3
ていうかこの期に及んで
「必要なのはC言語の知識というよりは高負荷環境を捌く知恵と経験」
ということに気づけなかった時点でイラネ
0082 ◆cZfSunOs.U
垢版 |
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します......
0083root ★
垢版 |
04/07/30 20:31ID:???
>>82
お、そっか、これ、改めていいかも。
どこかにうpしてほしいなと。
0084 ◆cZfSunOs.U
垢版 |
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 変わったりした際はご容赦を......
0085root ★
垢版 |
04/07/31 01:09ID:???
>>84
ping とおらなくて、port 80も応答しないっす。
0086root ★
垢版 |
04/07/31 01:23ID:???
再度やったらとれたです。どうも。
0087 ◆cZfSunOs.U
垢版 |
04/08/20 06:58ID:u+ITA5IG
【Project peko】スレの方は OS の話が進んでいるようなので,こちらで.

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

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

0094ひろゆき@どうやら管理人 ★
垢版 |
04/10/29 18:08:44ID:???
なにか問題あったら教えてくださいー。
0097root▲ ★
垢版 |
04/10/29 18:29:34ID:???
>>94
live8 (AMD64)のread.cgiを7.31pに更新しました。
これから memories 上の各バーチャルホストのも更新します。
0099外野ァァン
垢版 |
04/10/29 18:30:48ID:sfwO8Jst
sports2
read.cgi ver6.01p (02/04/12)

(つД`)
0101ひろゆき@どうやら管理人 ★
垢版 |
04/10/29 18:54:41ID:???
あ、7.33にかわりましたー。
0102ひろゆき@どうやら管理人 ★
垢版 |
04/10/29 18:54:58ID:???
これでほぼ確定かと。
0103root▲ ★
垢版 |
04/10/29 19:03:49ID:???
>>101
了解です。
0104動け動けウゴウゴ2ちゃんねる
垢版 |
04/10/29 19:06:38ID:k5SUStDx
右上の広告が激しくウザイです
終わったら早く消してください糞野郎(^^v
0105root▲ ★
垢版 |
04/10/29 19:09:37ID:???
live8 と memories の read.cgi を変えました。
0106root▲ ★
垢版 |
04/10/29 19:13:20ID:???
read.cgi 効果は、すごいや。
0108root▲ ★
垢版 |
04/10/29 19:14:33ID:???
というわけでこうなるとeq/eq2のピーク時の負荷がちと心配なんで、
やばければまたごそごそしてみるか。
0109動け動けウゴウゴ2ちゃんねる
垢版 |
04/10/29 19:37:45ID:k5SUStDx
sports2は変えるなよ糞運営側が
0111root▲ ★
垢版 |
04/10/29 22:42:46ID:???
地震Wiki(eq2.maido3.com)は、何とかもちそうかな。
チューニングがよく効いている模様。

banana618% uptime
6:41AM up 3 days, 1:23, 1 user, load averages: 8.06, 12.48, 11.03
0113ひろゆき@どうやら管理人 ★
垢版 |
04/10/30 02:38:02ID:???
治し方がわからなければ、どうしようもなく。
0114▲ 某ソレ511
垢版 |
04/10/30 02:51:24ID:97K2ZQ4a
追加した部分がおかしいのかなーと思ってhtmlのソース見てみたけど
よーわからんかったわー
0116動け動けウゴウゴ2ちゃんねる
垢版 |
04/10/30 03:06:00ID:00fdA7BV
広告消して
style=float:left;
style=float:right;
を削るとか良さげ
0117動け動けウゴウゴ2ちゃんねる
垢版 |
04/10/30 03:12:24ID:F6xK/Sda
<div style='width:100%; border-bottom:1px solid #888;'>
<span style=float:right;>[PR] (省略) [PR] </span>
<a href="../../../../operate/">■掲示板に戻る■ (省略) 最新50</a>
</div>

こうしる。
0119動け動けウゴウゴ2ちゃんねる
垢版 |
04/10/30 06:55:55ID:j9M0VUy5

ver7.32p、>112と同じくネスケ4.7で不具合あるみたいです。
マウス左ボタンおしっぱで範囲選択、色が反転するはずのあれ、、が、
なんでか、できません。
(ver7.33pでは、これはできるみたいです)
かといって、どこをどうしていいのかはわかりませんけど、
一応、報告まで。
0120未承諾広告※ ◆TWARamEjuA
垢版 |
04/10/30 07:42:39ID:FTK/i+qz
floatにする理由が見あたらないかも♪
見た目がどのようになって欲しいかを画像で示して貰えたら、広告枠のHTMLパーツを描いてみますけれども。。。
0122 ◆cZfSunOs.U
垢版 |
04/10/30 10:24:02ID:oYYc5c1i
というか,float 要素は width 指定が必須ではなかったでしたっけ?
まぁ,どちらにせよ古いブラウザだと CSS 対応がちゃんとしてなかったりしますが.
0123ひろゆき@どうやら管理人 ★
垢版 |
04/10/30 10:34:53ID:???
うわーんよくわからないので、htmlで適当につくってあげてもらえると分かりやすいですー。
0124動け動けウゴウゴ2ちゃんねる
垢版 |
04/10/30 10:54:50ID:cYgiWgRR
WinIEでしかみれないHTMLはやめてくれ。
W3Cに準拠したブラウザだと表示が崩れるんだ。
酷いページはページ全体が1行に収まって最悪に見難いんだ。
0128 ◆cZfSunOs.U
垢版 |
04/10/30 12:08:48ID:oYYc5c1i
こちらも,>>117 ので一応ネスケ 4.78,Mozilla 1.7.3 で正常に表示されます.
ただ......やはり CSS としては float 要素には width は必須のようで
    http://www.w3.org/TR/REC-CSS2/visuren.html#floats
しかし,どれほどの width がちょうどいいのかってのは難しいところですね.
個別の PR 文ごとに適当に指定するよりしょうがないですかね......
0129▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo
垢版 |
04/10/30 12:19:09ID:SaiKpfhn
というか、何をどーしたのかがよーわかりませんが。
どなたか教えて。
0133動け動けウゴウゴ2ちゃんねる
垢版 |
04/10/30 15:52:27ID:s2LmfvDB
CSS使って各種UAで表示確認するより
TABLEにしたほうが手間かからないような

<table><tr><td>■掲示板に戻る■</a> <!--中略--> <a href=l50>最新50</a><td align=right>[PR] <a href=http://eq.maido3.com/>;新潟ガンバレ!</a> [PR]</table>
■ このスレッドは過去ログ倉庫に格納されています

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