bbs.cgi再開発プロジェクト6
■ このスレッドは過去ログ倉庫に格納されています
peko鯖の稼動によりボトルネックの一つである事がより明らかになった bbs.cgi作り直しプロジェクトです。 【開発環境の工事現場】 また挑戦。@2ch掲示板 http://dso.2ch.net/myanmar/ また挑戦2。@2ch掲示板 http://dso.2ch.net/yangon/ 関連スレなどは >>2-5 くらい >>86 そうしようと思った動機はなんですかね。 Beにログインしている以上、Be情報は常に表示すべきだってことなのかしら。 >>86 あれは優待の1機能として「Beを隠す」があるだけので、処理自体は 簡単だと思う。Beを隠さないで優待も出来るから。 確か、「Beが表示されたままだとコテみたいでうざがられる」な 話しがあってBe隠し機能が入れられた気がする。 >>102 もしくは優待使うなら公開でやれって話しかもですね。 >>103 >Beを隠さないで優待も出来るから。 優待使ったらbe表示されなくなるんですが…だから>>86 なんでないですか? >>105 あれ? と思ってテストしてみたら…確かにそうでしたorz 確か以前はBe表示も出来た時があったと思ったんだけどなあ? ・株主優待からもsakuするため ・beメールに要望が来たから訊いてみた とかじゃね? で、よく見ると >>86 の引用されているポイント数って、 ひょっとして私のやつ、、、なのかしら。 rootさんのポイントは管理人に監視されています。 |∀・) >>86 の真意はBeポイントを簡単にサクりたいのではないかと。 サクられるようなことしなきゃいいんだろ。 はやくbe表示できるようにしてくれ。 さて...... >>65 のに bbsd 入れてみますかねー. ex21 は Saborin で HTML がなかなか更新されない状態, wwwww は差分が発生しやすい状態,の解消をそれぞれ目指す,と...... ニュー速のsakuツールにはスクリプトからdatに書き出している 疑いがあり、導入拡大の際は注意されたし。 書き込みの多い wwwww では LA も相応に低下してる感じですね. ちなみに,OS が 5.xR の news21, news22 ではシングルスレッドで動かしてますが, 6.xR の ex21, wwwww ではマルチスレッドで動かしてます. >>119 言われてみるとそうですね.その時になったら,改めて対処法を考えましょうということで...... -lpthread じゃなくて -lthr だともっと幸せかも。< MT >>120 libmap.conf 書けばいいわけだけど、明にリンクすればおkかも。 >>121 そういえばそうでしたね<libpthread vs. libthr ただ,コンパイル時には -pthread オプションを指定してたんですが, libthr の場合にはどうするのがいいのかな(ライブラリをリンクする順番や 必要なマクロ定義などの関係上,スレッドライブラリは -l で直接指定するのは 非推奨のようなので.Solaris で -pthreads 指定すると _REENTRANT のような マクロも自動的に定義されたりしますが,FreeBSD の場合は こういうマクロ定義はいらないんでしたっけ). ちなみに,こんな動きもあったようで. http://lists.freebsd.org/pipermail/cvs-src/2007-May/078202.html >Change the default thread library to libthr. で、>>86 はどうなったの? たにしがプチ優待までbe消せるようにしてるんですが… http://qb5.2ch.net/test/read.cgi/operate/1169173887/977 >bbs.cgi の foxDNSquery や foxDNSquery2 も、それにすると幸せなようかん。 の件ですが, a. レスポンスが不要なもの b. レスポンスが必要なもの のうち,まず a. は話が早いんですよね.$res->query() を単純に $res->bgsend() に 置き換えた上で,戻り値チェックも何もせずに抜ければいいだけなので. 一方,b. の方はもうちょっと検討が必要ですね.非同期クエリーを行うことによる最大のメリットは, レスポンスが返ってくるまでの待ち時間を利用して別の処理を進められることです. そのメリットを享受するためには,DNS 問い合わせの処理を 1. クエリーを発行する 2. レスポンスをチェックする の二つに分け,なおかつ 1. の処理をできるだけ前倒しし,2. の処理をできるだけ先送りする のがいいんですね.となると,bbs.cgi 全体の処理の流れを再検討することから始めた方がいい,と. read.htmlがメモリーリークを起こしててプロセス終了まで開放されずにスワップしまくりの件は、 1)何それ初めて聞いた 2)I.E.ユーザーのことは後回しでいいよ 3)もうread.htmlには興味無いよ 4)調べたけど原因がわからないから仕様 5)原因がわかったけど直せないから仕様 6)原因がわかったけど面倒臭いから仕様 のいずれなんでしょうか。 雰囲気的にはdatを取ってくるオブジェクトが開放されていないような感じで、当該処理をしている窓を閉じてもプロセスが終了するまで確保したメモリーがそのまま残っています。 ざっと1回「リロード[Ctrl+r]」のリンクをクリックする毎にメモリー使用量が20〜30M前後増加し、その後何をしても減少しません。 ちなみにWin2k+IE6です。 >>126 自分で使っている Firefox もプロセスサイズが肥大化しやすい傾向があって, read.cgi 使用時に比べて read.html 使用時はその肥大化のペースが結構速いんですが, >ざっと1回「リロード[Ctrl+r]」のリンクをクリックする毎にメモリー使用量が20〜30M前後増加 1回のリロードでそこまで一気に増加することもないですし, また Windows XP SP2 + IE 6 でも動作確認していましたが, そこまでの急激な増加というのは見たことないですが...... ただ,IE 6 SP1 では↓のようなメモリリークのバグがあるそうなので,SP2 にしてみてはどうでしょうか. http://support.microsoft.com/default.aspx?scid=kb ;ja;890900 # read.cgi / read.html のことはスレ違いな気がするものの, # 現状では read.cgi スレが落ちてるのでとりあえずここでレスしましたが, # それでも動作報告スレとかの方がいいような気も. Windows2000のIE6.0にSP2は無いのにゃ。 Win2k ってもうサポート期間終了してたんでしたっけ? だとすると,それはあきらめてもらうということで...... 「延長サポートフェーズ」ですか......ともあれ, 古いバージョンのブラウザにあるバグだし, こちら側ではあえて対処しないということで. >>128-133 了解しました。当面環境を変える予定は無いので、仕様として我慢して使います。 情報提供とご返事にお手数をかけて頂き有難う御座居ました。(ぺこり) >>57 →bbs.cgi 軽量化の切り札第一弾(Rock54 データのプリコンパイル)も, →そろそろやるといいのかなぁ...... これってば、もしかして既に実施済み? いやあのちょっぴり不具合みたいなのが出ているようでして(苦笑) ♯本体リストの方は大丈夫のもより♪ >>136 率直に具体的に云いますと、Rock54登録所では、いわゆる「さくら」がリストの最初に来るように番頭はんがソートしていまして、それを丁稚どんに取りに来て貰っています。 それをもしかしたらbbs.cgi船が出る時に再ソートしていないかなぁと思いましてして。 >>137 こんな感じなんで,bbs.cgi 側ではソートはしてないような...... if(open(ADFILE, 'Rock54DataFile')) { # @FOX_Ro54 = <ADFILE> ; @FOX_Ro54 = map { eval { no warnings; my @a = (split /<>/)[5..7]; [qr/$a[0]/, @a[1..2]]; }; } <ADFILE>; close(ADFILE) ; } >>138 なぁるほど。。。 ってことは、evalで引っかかっちゃってる(qr//でミスコンパイル)のかぁ。。。 でもって鯖によって5.6系と5.8系が混在しているのも何かありそうな。perlreでもよく読んでみよう。。。 既に忘れ去られている「関連ページ」。 随分前に、管理人の指示でread.cgiからはリンクが外され、 http://info.2ch.net/test/tb.cgi も既に消滅しているわけですが、 index.htmlには未だにリンクが残っていたりします。 通常鯖、bbsd鯖共に。 外しましょう外しましょうー。 FF11攻略情報 www.rmtfcne.com/f11 FF11攻略情報 www.rmtfcne.com/f11 "を"にエスケープするようになったのはhana=mogera導入された頃だった気がする どうするのがいいんですかね。 >>165-166 単に、1行の長さをもう少し許容するようにする、だけでいいものなのかどうか。 そもそも1行の長さを判定しない。 と言うのもあるかな♪ そもそも1行の長さを制限するのって何で? 改行するのは段落を変えるときだけのほうがいいと思う 1行に"aaaaaaaaaaaaaaaaaaaa...と "a"を4096文字並べることによって topページ見たときに、横幅が物凄く広くなる荒らし方が出来るし。 今の2chで出来るかはどうか知らんけど 画面幅に合わせて見る側のブラウザが改行するのが本来でしょ >>174 それも違うでしょ。 画面幅に合わせる事が絶対では無い。 CSSでの明示指定やブラウザ機能での明示設定ならまだしも、 そうでない場合に強制改行するのは全くの誤り。 >>158 ,164 bbsd でも変更しますた.で,とりあえず ex21 に反映しますた. 他に news21, news22, wwwww, live25, anime2 あたりにも入ってたかと思いますが, そのあたりのは一連のリフレッシュ作業により稼働中の板はなくなったようなので,省略. リフレッシュ後の鯖で入れた方が良さそうなのがあれば,改めて入れましょう,ってことで. live23b, live24b, snow あたりのはむむむさんにおながいします,ということで. あと " については,普通の本文中などにある限りはあえて " に 変換する必要もないんでしょうが,確認画面で input タグの中に入ると 問題があったので一律に変換するようになったんですよね.なので, 変換が必要なケース(input タグ中に入る場合とメール欄)と 不要なケースを峻別して,そのあたりの処理を見直すというのも 一つの方法かもですが...... >>176 snow のは root 権限なくても更新できるようになっているです。 移行の際にそうしますた。 といってもいま、落ちてますが、、、。(´・ω・`) >>177 なるほど,そうですたか.では snow のは復旧したらこちらでやっておきます. >>179 おつでした。 live23, live24 の bbsd 更新しました。 ・ qb5 で詰まる原因を探りやすくすべくログを取るようにする ・ いつぞやのように規制リスト配布がバグっても 500 エラーにならないようにする ・ >>176 の後半 あたりをやってみようかと...... &quot; ではなく &quot と書いても " に変換されてるみたいだけど正常なのかな? 全角 → 半角 quot → quot &quot → " &quot; → " dat 中(というか HTML ドキュメント中)の " が ブラウザでどう表示されるか,という話ならブラウザ依存でしょうね. で,とりあえず今のところログに残ってるのは [2007-12-17 16:26:18] &foxSetHost($GB) ; # ホストの判定: took 23s [2007-12-17 17:22:31] &foxSetHost($GB) ; # ホストの判定: took 22s [2007-12-17 18:32:17] &foxSetHost($GB) ; # ホストの判定: took 23s てな感じですが(DNS 問い合わせで詰まってる?), これはいつも qb5 で詰まる時のパターンなんですかね? ともあれ,bbs.cgi の実行時間が長くなった時に ログに記録する仕組みは動くことが確認できたので, さらにもうしばらく観察...... >>190 qb5 ですが、なんか、qb6 で動くものと動機しているっぽい気がしました。 アクセスログと見比べてみるといいかも。 >>191 なるほど.っていうか >>190 のログと 500 エラーのタイミングも一致してませんね. これは,bbs.cgi 実行に入る前の SpeedyCGI そのものの実行段階で詰まってるってことかな...... あと、ほとんどの場合は 500 エラーが出ても書けているんですよね、、、。 つまり、少なくとも dat に追記するところまでは処理が動いていると。 当てずっぽうで書きますが......現状で 512 になってる kern.maxusers を さらに増やしてみてはどうでしょう,とか...... >>194 資源系ですか。 何か、資源系で足りないものがあるような、というのには、 私も同意。 あくまで推測ですが,speedy <-> speedy_backend 間の通信(Unix ドメインソケット経由)が qb5 / qb6 の環境ではエラーになりやすいということかも知れないのではないかなぁ,と. SpeedyCGI のソースを見てみると ---------------------------------------------------------------------- http://speedycgi.cvs.sourceforge.net/speedycgi/2.x/src/speedy_frontend.c?view=markup 388 /* Create sockets in preparation for connect. This may take a while, 389 * esp on FreeBSD, when it's out of sockets. 390 */ 391 if (!sockets_open++) 392 speedy_ipc_connect_prepare(socks); http://speedycgi.cvs.sourceforge.net/speedycgi/2.x/src/speedy_ipc.c?view=markup 22 #ifdef ENOBUFS 23 # define NO_BUFSPC(e) ((e) == ENOBUFS || (e) == ENOMEM) 24 #else 25 # define NO_BUFSPC(e) ((e) == ENOMEM) 26 #endif 48 static int make_sock(void) { 49 int i, fd; 50 51 for (i = 0; i < 300; ++i) { 52 fd = socket(AF_UNIX, SOCK_STREAM, 0); 53 if (fd != -1) 54 return fd; 55 else if (NO_BUFSPC(errno)) { 56 sleep(1); 57 speedy_util_time_invalidate(); 58 } 59 else 60 break; 61 } 62 speedy_util_die("cannot create socket"); 63 return -1; 64 } 180 void speedy_ipc_connect_prepare(int socks[NUMFDS]) { 181 int i; 182 for (i = 0; i < NUMFDS; ++i) 183 socks[i] = make_sock(); 184 } ---------------------------------------------------------------------- FreeBSD では socket(AF_UNIX, SOCK_STREAM, 0) が ENOBUFS になりやすいということかも? そこで,ENOBUFS になりにくいようにするにはどうしたらいいか,というのがポイントかも知れないんじゃないかと...... あと,こんなのもあるようですが...... UNIX domain sockets MFC's http://unix.derkeiler.com/Mailing-Lists/FreeBSD/stable/2007-05/msg00206.html SpeedyCGI で speedy_backendを使わないoptionったないんでしたっけ? もしあったら少しの間それで援用してみるとか、 >>199-200 http://daemoninc.com/SpeedyCGI/ でそういうオプションは見あたりませんが, 普通の Perl スクリプトとして動かせばそういう形にはなるかもですね. >>201 >普通の Perl スクリプトとして動か すようにしてみました. @qb5 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる