read.cgi再開発スレ Part2
■ このスレッドは過去ログ倉庫に格納されています
◆cZfSunOs.Uさん作成のmod_cgidsoにより、大きな負荷軽減が図られたread.cgi。 このスレでは、そんなread.cgiの(再)開発・実装すべき機能について取り扱います。 前スレより: 574 名前:FOX ★[sage] 投稿日:05/01/05 15:54:28 ID:??? 全てのサーバ cobra/toger/banana で read.cgi の dso化が完了。 これから href の置き換え ime.nu 対応を行い それが終了したら第一ステップは完。 第2ステップは 2-1) bug つぶし 2-2) 仕様の変なところは変更 2-3) 時代背景にあわせたデコレーション こんなとこかと、 前スレ: read.cgi再開発スレ http://qb5.2ch.net/test/read.cgi/operate/1087199303/
http://sunos.saita.ma/mod_cgidso.html dso-example.cを見るに、Last-ModifiedとかETagとか304の実装は簡単そう。 http://qb5.2ch.net/test/read.cgi/operate/1149664022/81-n あたりの話. 例えば read.cgi 出力を mod_cache でキャッシュするとかいうことをやるとなれば, Last-Mod 吐かないとキャッシュは正常に機能しないかと. 利用者側としては、Last-Modifiedが役立つ環境があって、 2ch側としては、入れたら困る理由がないのであれば、 入れちゃえばいいじゃん、と単純に思うのであった。 おお、途中送信 負荷が高くなると人大杉が発動するってことは、read.cgiが呼ばれること自体だけじゃなくて read.cgiの処理そのものが負荷になるということなんでしょ。 そこで If-Modified-Sinceとか読み取って304を返せば負荷軽減になるってことだよな。 Last-Modifiedを返すだけで、そもそもリクエストが少なくなったり、途中のなんらかの プロキシとかのキャッシュに正常に蓄えられるようになるし、>>549 みたいなこともあるし、いいことだらけ。 >>553 それは bbs.cgi が生成する index.html の問題ですね. 例えば /BE:(\d+)-(\S*)/ のような regex で BE のデータを抽出した場合 <font color=...> 内のスペースのところでちょん切れるのが原因なんだろうけど, まぁいずれにせよ,最低限 <font> タグ直接埋め込みはやめた方がいいような. カラフルに修飾するのは be.js が受け持ちますよ,ってことで...... ここじゃ騒ぎが大きくなりすぎや! ガッツ石松がかぎつける前に場所を変えるで!おめぇらついて来い! ここじゃ騒ぎが大きくなりすぎや! ガッツ石松がかぎつける前に場所を変えるで!おめぇらついて来い! >>553-554 ふむ、、、。 bbs.cgi 側でごにょごにょってかんじで。 2chブラウザに付けたいのですが 2chのread.cgiのソースは公開していないのですよね? read.cgiってC言語で書かれているんですね 知らなかった… http://pc8.2ch.net/test/read.cgi/mysv/1141810775/951 ap_rputs() を使ってるとこをちょっと工夫すると 約1.4倍高速化するらしいですよ。(ソースコード有り) read.cgi の場合その前に最適化すべき所があるような気がしますけど... >>571 なるほど......それは他に ap_rprintf() などにも共通のようですね. ちなみに,現行 read.cgi では全部 ap_rprintf() を使ってる模様. >>572 確かにそう思う部分もなきにしもあらず......ですが,今はどちらかと言えば JavaScript 版 read.html の実用化を目指すというのが流れかな...... 指令が出たような気がしないでもない p2.2ch.net総合スレ(不具合報告スレ Part13) http://qb5.2ch.net/test/read.cgi/operate/1155610565/554+561 554 名前:動け動けウゴウゴ2ちゃんねる[sage] 投稿日:2006/09/16(土) 22:26:11 ID:2Qi8OQ4FP つか、いつの間にか p2.2ch.net総合スレ(不具合報告スレ Part13) ttp://qb5.2ch.net/test/read.cgi/operate/1155610565/1,3,5,7 が、一纏めで>>1 のみになってる この場合、3、5、7がリンクから飛べないから、以前の仕様に戻して欲しい 勿論1、3、5、7が一気に表示された方がいいけど 561 名前:ひろゆき@どうやら管理人 ★[] 投稿日:2006/09/18(月) 12:46:39 ID:???0 ?DIA(33417) 2chのread.cgiも>>554 に対応させたいなぁと思う昨今です。 read.htmlが対応してるのはわかるけど > read.html を実用化すれば対応することになる っていうのはちょっと違うような気がするな >>576 まぁ,ひろゆきさんの発言の真意がわからないと正確なことは言えないでしょうけど...... ただ,read.html (JavaScript 版 read.cgi) 自体がひろゆきさんの発言からスタートし, これが従来の DSO 版 read.cgi に代わってメインとなり,DSO 版は read.html 非対応ブラウザ などへ対処するための補完的なものになる,という方向なんで...... # もっとも,この方針が変更されるのなら話は変わってくるでしょうけど. >>577 >>576 はひろゆきの言いたいこととは違うという意味ではないので > ひろゆきさんの発言の真意 はあまり関係がないので念のため >>177 の確認 http://www.2ch.net/il |li/test.test/ ちなみにhtml化された過去ログではリンクが有効になってる あのさ https://qb5.2ch.net/test/read.cgi/operate/1105909861/ ftp://qb5.2ch.net/test/read.cgi/operate/1105909861/ これもこのスレにリダイレクトしてもらえるとhttp15個規制の回避に使えるんだけど どうかね それか2ちゃんの鯖名で始まるアドレスはhttpなしでリンク有効化してもらうとか read.cgi 内で,read.html ファイルが存在しかつ Cookie で JavaScript モードに設定されている場合は read.html を返す ( http://qb5.2ch.net/test/read.cgi/operate/1163825500/556 ) ってのを入れてみますた. さらに, ・ pastdat.so / anydat.so を利用した雪だるま過去ログ対応. ( http://qb5.2ch.net/test/read.cgi/operate/1153650861/763-770n ) ・ thread safety 問題の fix(前ちょっとメールで言ってたやつ). ってのもやりますた.まだ配布はしてませんが dso で動いてます. >>584 おつです。 read.cgi の配布方法も、 そろそろ情報共有しないといけなそうなかんじで(後で別途メールするです)。 >>584 > ・ thread safety 問題の fix(前ちょっとメールで言ってたやつ). これって、主に雪だるまサーバ(worker MPM)で発生していた、 超高負荷時にフロントエンドの httpd が signal 10 で落ちるのが観測されるのが、 改善するかもしれない、ということなのかしら。 >>586 何が原因で落ちてたのかわかりませんが,マルチスレッド環境での race condition によるものだとすれば改善される可能性はありますね. まぁ,いずれにせよ worker MPM で使ってる read.cgi は入れ替えた方がいいですが. >>588 先ほどの read.cgi 更新時に一時的におかしかったですが,もう直ってるかと. >>587 live22x, live23, news20 の read.cgi を入れ替えました。 (昨日の作業で) また、ex11 の read.cgi をさきほど入れ替えました。 これで、高負荷時(今日の昼とか)の httpd 不安定が解消するとうれしいなと。 # ex11 は worker MPM で動作中。 ちと、ひとつ質問です。 ソースを見ると、 #if APR_HAS_THREADS ... #endif などとなっていますが、 これは read.cgi バイナリが APR_HAS_THREADS がある時とない時で、 違うものになる、ということなのかしら。 >>591 コンパイルする時にどちらを生成するかじゃないの? ああ、ちょっと文章の解釈間違えてたかも >>591 多分あなたが思ってる通りだと思います ようはバイナリ生成時にAPR_HAS_THREADSが定義されてるかされてないかによって #ifと#endifの間の行が評価されるかされないかが決まるってことですね >>591 そういうことですね.worker MPM に入れるやつは,apr.h を見て #define APR_HAS_THREAD 1 な鯖でビルドしてもらうということで(その #if...#endif を入れないと, #define APR_HAS_THREAD 0 な環境でのビルドでエラーになってしまう). >>595 了解です。 APR_HAS_THREAD なサーバかどうかで、 バイナリ互換がなくなるという認識でいいのかしら。 ちなみに 2ch のApache 2.2 な掲示板サーバは APR_HAS_THREAD が 1 なので、 現在の作り方で、今のところは ok と。 >>596 >APR_HAS_THREAD なサーバかどうかで、 >バイナリ互換がなくなるという認識でいいのかしら。 基本的にはそうですね.もうちょっと詳しく述べると ・ !APR_HAS_THREAD な環境でビルドしたバイナリは,prefork MPM で使う限り !APR_HAS_THREAD, APR_HAS_THREAD どちらの環境でも使える(worker MPM では unsafe). ・ APR_HAS_THREAD な環境でビルドしたバイナリは,APR_HAS_THREAD な環境でのみ 使える(prefork MPM でも Ok).!APR_HAS_THREAD な環境では dlopen() の 時点でシンボルがないとかいうエラーになるはず. 先生! 要望がありまつ♪ 「新着レスの表示」というのが画面中央に表示されているでつが、 IE6でウィンドウを全画面に開いていると、気が付かないでつ。 最新50の右側に置いたほうが よくないでつか? 倉庫落ち表示が変わってたんだねー。 最終レスが表示されなくなって、うまくすれば次スレ誘導が表示されていたのが されなくなってしょんぼり。 頭で倉庫落ちを強調するのは良し。 ソフトウェア板は移転してるだよ http://pc7.2ch.net/software/ 最終レス番号くらい見えれば、どこまでのdatを持っているのか分かるのに。 「調子の悪いスレッドの修理承り口」スレにて、以下のようなお話がございました。 掻い摘んで申しますと、過去何度か行われたbeの仕様変更の内の一つが、 read.cgiでは表示されないというものでございます。 もう既に廃止された一時的な仕様のようでございますので、 基本的にはレス削除で対応するべきかと考えているのですが、 もし仮に、read.cgiにて容易に対応可能であれば、 そちらの方がよいのは申すまでもないことだと思いますので、こちらでご報告させて頂きました。 よろしければ、一度ご検討くださればと思います。 http://etc6.2ch.net/test/read.cgi/be/1101017559/933- 原因と思われる箇所 http://etc6.2ch.net/test/read.cgi/be/1101017559/450-451 名無しさん@お腹いっぱい。 <><>05/02/02 17:07:04 ID:5mtV+yhn <BE:8020962/0><> あげ <> 名無しさん@お腹いっぱい。 <><>05/02/02 17:46:46 ID:5k9kH1P1 <BE:22914353/0><> ?#をレベル表示にしようとしてる為にバグバグなのかしら? <> >>605 これは...... be 鯖から etc に移転する際に,BE 形式の変換漏れがあったってことかな. たぶんその部分を再変換すればいいような肝...... きちんと表示できるようになりました〜。 有難うございました。 >>606-607 ◆cZfSunOs.Uさん お疲れ様です。私の方でも修復を確認致しました。 ありがとうございました。 T-banana 用の read.cgi本体はex21にしました。 そしてそこから配布という仕組みで とりあえず TODO リスト: ・ hw.model の "Core(TM)2" 判定 http://qb5.2ch.net/test/read.cgi/operate/1172208065/196 # bbs.cgi での banana(?:3\d{3}|290)\. 判定もですね. ・ dat 落ちメッセージ中のソフトウェア板のリンクが古い http://ex20.2ch.net/test/read.cgi/nanmin/1172110596/49 ・ 配布を考えると Makefile 中で RUNPATH 指定した方が安全かも? >>604 >>612 見落としてました......まぁ,結果的には同趣旨が TODO リストに入っているということでご容赦を...... >>614 今は新スレ立てなきゃならないほど人がたくさん来る状況でもないですし,どうしましょうかねぇ...... # 全鯖導入とかすれば再活性化するかもですがw rootさん京ぽん2対応マダー?(・∀・ )っ/凵⌒☆チンチン >>617 http://qb5.2ch.net/test/read.cgi/operate/1171194524/737-759n あたりの話なら,↓のように一義的には Opera への対応によるものです. http://qb5.2ch.net/test/read.cgi/operate/1166328527/373-388n で,携帯等のモバイル端末で 2ch にアクセスする場合は携帯入り口を使ってもらうのが基本で, フルブラウザ搭載だから PC と同じページを閲覧するということなら そのフルブラウザは PC のブラウザと同等の能力を持っていることが前提で, 中途半端な能力のブラウザであれば自己責任ということで対処してほしいと. # このあたりはネスケ 4.x 等のレガシブラウザでも同様で, # レイアウトが崩れるなどしても一応見られるという程度までの配慮はしますが, # モダンブラウザと同等の表示ということまではご勘弁下さいということで. "レス数が900を超えています。1000を超えると表示できなくなるよ。" って出るんだが、正しくは"1000を超えると書き込みできなくなるよ。" じゃないかと思ったりした。 read.jsスレが消えてるのでとりあえずここへ WinXP SP2 Opera9.10 本文の欄に「Vista」と入力しようと思って「Vist」まで打ち込んだら 突然スレがリロードされた どうやら半角英字の「t」を押すと勝手にリロードされる模様 IMEをオフにした状態では「t」を本文の欄に入力することが出来ない 何とかしてくれ >>621 Ctrl+R ならリロードしますが,t でリロードするようには作ってないので, クライアント側の誤作動では?としか...... ということで >>622 かなぁ. >>622 の指摘通りなんかパソコンがおかしくなってるんだろうと思い 再起動をしてみたわけだがやはり「t」でリロードがかかる myanmarのスレでも試してみたが結果は同じだった どこかにbugでもあるんだろうか Opera/9.10 (Windows NT 5.1; U; ja) アルファベット26文字を試してみたが やはりtだけリロードになって入力できない 本文だけでなく名前欄とメール欄でもtでリロードしてしまう Opera/9.10 (Windows NT 5.1; U; ja) 板トップのindex.htmlでは問題なくtを入力できる Opera/9.10 (Windows NT 5.1; U; ja) なったなった。 表示テスト用にしか使っていない(特に設定は弄っていない)オペラで。 入力欄だけじゃなくて、ページ全体で、tでリロードのリンクが押される。 (リロード中。。。 に変わる) アルファベットキー単体で作動する、オペラ特有のショートカットキー機能が 作用している気もする。 バージョン情報からコピペ バージョン 8.54 Build 7730 プラットフォーム Win32 システム Windows 2000 Java Sun Java Runtime Environment version 1.4 XHTML+Voice プラグインがダウンロードされていません うーむ......確かになりますね.どうもこれは,t を押した時の keyCode と F5 を押した時の keyCode が同一 (0x74) というのが原因のようです. IE では F5 がトラップ不能なんですが Firefox / Opera ではトラップ可能なんで, F5 でページ全体でなく dat だけリロードになるようにしてるわけですが...... さて,どうしましょう...... Opera/9.10 (X11; SunOS i86pc; U; en) ちなみに,こっちではそういった現象は起きないですね. Mozilla/5.0 (X11; U; SunOS i86pc; ja; rv:1.9a2pre) Gecko/20070206 Minefield/3.0a2pre Firefox と Opera での違いというと,Firefox では keydown を使ってるけど Opera では keypress を使ってるってことか.keypress でなく keydown なら t の keyCode は 0x54 になって F5 と別になるんですが,Opera の場合 keydown だと preventDefault() でデフォルトアクションを無効化するのが できないから keypress にしてたんだったっけ.仕方ないから, Opera の場合は F5 のトラップはなしにするかな...... >>630 をやってみた.F5 は普通のブラウザのリロードになっちゃうけど, t は普通に入力できるようになったかと. Opera/9.10 (X11; SunOS i86pc; U; en) tでリロードにならないことを確認 Opera/9.10 (Windows NT 5.1; U; ja) >>611 をやりますた(ソフトウェア板も近々 pc11 に移転するでしょうから, そうなるとまた修正になるんでしょうけど). で,これにより read.cgi ソースは再統一されますた.バイナリも dso から T-banana に直接配布にしてもおkなはずですが,現状 ex21 から配布するように なってるので,せっかくだから CFLAGS に -march=nocona 入れますたw read.cgi 配布の際にあちこち回るのはマンドクセーってことで, dso 上のシェルスクリプトで live24b, ex20, ex21 の各鯖に read.cgi ソース 転送して make して配布するのをオートマチックに行えるようにしてみますた. >>636 う〜む,read.cgi 配布リストに memories 逝きになった鯖が残ったままだったようで...... ex18, tv9, tv10, society5, academy5, science5, music6, music7, pc10 これらをリストから消して,また memories は amd64 なので,ex20 のを入れ直しておきますた. ついでに,bbs.cgi 配布リストでも tv9, tv10, hobby8, academy5, science5, music6, music7, love4 が入ったままだったので消して,一方 love5 が入ってなかったので追加しますた. >>637 > また memories は amd64 なので,ex20 のを入れ直しておきますた. 「おすすめなんたら」のファイルがどんどんできてしまいそうな気がしたので、 teri.2ch.net (配布元)から配布しなおしておいたです。< memoriesなサーバ群 >>638 あ,memories の配布元はそっちでしたか.乙です. ついでなので,何かの拍子に memories に紛れ込んでも大丈夫なように, ホスト名が oyster902.peko.2ch.net (=memories) の場合はおすすめのファイルが 生成されないようにというのと,bbs.cgi や削除系呪文と同様に雪だるま判定を 環境変数で行うようにしますた. ProxyじゃないのによくProxy規制にかかるんですが、 別窓でそのエラーが出るので、アクセス規制中でもかける板たち・・などに 飛んでいけません。そこから解除申請に必要なページに飛びたいんですけど。 やむなく、別の板で書き込んで、エラーページから飛んでます。 けっこう不便ですよね。 >>641 read.js の話ですかね.エラーの場合はおすすめのスペースを間借りして エラーメッセージを表示するようにしてみますた(書き込みに成功するか リロードするまではエラーメッセージが残ります). 京ぽん2使ってます。 この板のスレ一覧(全部)で実行ボタンを押すと スレが見られますが、ゲーム速報板だと、 押してもしばらくたたないと反応せず、 その間止まったままです。ひどく待たされます。 なんとか直して頂けないでしょうか? >>643-644 確か,京ぽん2にはケイタイモードとフルスクリーンモードがあると どこかに書いてあったような気がしますが,できればケイタイモードの時は 携帯入り口から入ってもらって,一方各鯖に直接アクセスする場合は フルスクリーンモードを使ってもらえればなぁ,と...... >>618 あたりでも書いたんですが,各鯖に直接アクセスするのは PC のブラウザやそれとほぼ同等の能力を持つフルブラウザであることが前提で, それ以外の携帯端末等は携帯入り口から入ってほしいなぁ,ということで...... >>645 うーん、そうですか。 出来ればこの板のread.cgiを ゲー速にも適用して頂けたりするととても有り難いのですけれども・・・。 フルスクリーンモードは左右にもスクロールするもので 使いにくいのですorz ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる