read.cgi再開発スレ
■ このスレッドは過去ログ倉庫に格納されています
稼働させると問題が多発しているread.cgiを再開発等を話しあうスレッド
です。
アイデア等がありましたらこちらへどうぞ 次はいよいよ 広告関係なんだが、、、
なるべく広告定義ファイルを読まないように実装したいなぁと
思っているけど出来るべか。
また同じような事を聞きますが、
dso を使った場合。 read.cgi のプロセスは複数起動される。
何個起動されているかは知ることが出来るがコントロールする事は出来ない。
read.cgiプロセス間に相互に関連性はない。
この辺が SpeedyCGI の時とは違っているわけだな。
この認識であってます? (言葉の使い方等も違っていたら突っ込んで欲しい) >>476
>dso を使った場合。 read.cgi のプロセスは複数起動される。
read.cgi は httpd プロセスと同一メモリ空間に読み込まれるので,
read.cgi そのもののプロセスは起動されません.httpd プロセスが複数なら
read.cgi(が読み込まれている)プロセスも複数ということにはなります.
>何個起動されているかは知ることが出来るがコントロールする事は出来ない。
httpd プロセスをコントロールすることが即 read.cgi(が読み込まれている)
プロセスのコントロールということになります.
>read.cgiプロセス間に相互に関連性はない。
相互の関連性というのが変数共有等を指しているのなら,
上の方で言われている通りですね. みゃんまーでテストしてきましたー。
最新レス番を指定すると全レスが表示されますよ。 read.cgiは完全にhttpdと同化して動く、ということですね。
つまり、prefork(現在の2chのサーバのhttpdの設定)でhttpdの最大数が768個なら、
768個までread.cgiが同時に動く(可能性がある)と。 何回もすみません >>477
どうしますかねぇ
起動毎に広告定義ファイルを読まなくても良い方法。 現在は ソース埋め込みです。
>>479
live16 もdso化しようかと、 >>480 とりあえず >>440-441 を参考に...... その プールとやらはどこにあるんですか?
見たところ アパッチの中のあるメモリ領域のように感じましたが
read.cgi から作成/設定、設定されていたら読み出し
こんな感じですか? live16をdso化しました。
news19から持ってきたread.cgiを入れてあります。 どもです どもです >>486
>>485
挑戦してみます。 ちなみに modcgi_dso のホームページってどこなんですか? >>485
リンクしようかと、 >>488 現状ではないです.作るなら 2ch Wiki あたりにとか...... りょうかいですー
static なページを作ってそこにリンクしておこう
奮戦気あたりをぼちぼち書いて、 typedef struct のところで
コンパイル時こんなエラーが、
read.c:10: error: syntax error before "apr_thread_rwlock_t"
何かヘッダーが足りないですか?
あと、
#define AD_CHECK_INTERVAL 60
の 60 って単位は sec ですか? >>491 あ......thread サポートが有効でないとそのあたりが定義されませんね......
rwlock や mutex を使ってるところは
#if APR_HAS_THREADS
:
#endif
で囲ってしまうのがいいかと.
>>492 そうです. threadサポートは(今のところ)入れてないです。< tiger/cobra
今のところこれでいきますが、将来worker MPMとか使う時は、どきどき、か。
でもSpeedyCGIもworker MPMには対応してないので、
その時にはまた別途、ってかんじかなと。 質問ですじゃ
if (ad_pool->mtime)
ap_rwrite(ad_pool->m->mm, ad_pool->m->size, r);
この部分で実際に書いていると思うんですが、(>>441)
1) if (ad_pool->mtime) これはどんな意味なんですか?
2) 文字列はad_pool->m->mmに入っているから strcpy(保存.ad_pool->m->mm);
とかやって取って置けますか?
ちなみに コンパイルも通って
実際に文字列がファイルから取ってこれるところまではできました。
インターバルが 60 になっているかどうかの検証はしていません。 >>497
1) 広告ファイルが存在しないなど読み込み不能の場合は ad_pool->mtime を
0 にしているので,そのチェックです.
2) できますが,strcpy するなら mmap する意味がなくなってしまうかと.
現状のコードは mmap された領域自体を保持するようにしています.
# もっとも,終端が '\0' である保証はないので strcpy より memcpy の方がいいですが. スレ開いたとき上部に出てくるリンクで、
「101-」から「1001-」に該当する部分がごっそり落ちてるんすけど。 ふむふむ
必要なときに出すことにしまーす。
広告定義ファイルが更新されたら即広告も変化するということでいいのかしら? >>500 前回のチェックから AD_CHECK_INTERVAL 秒経過後のチェックで
ファイル更新が確認されれば広告も更新ということですね. うーむ
600 sec にして広告変更したらすぐ変わっちまったなぁ
毎回読んじゃっているのかしら? あと,ファイル更新の際は旧ファイルをいったん rm するか,
新しいファイルをいったん別ファイルで作成した上で mv するか,という手順が必要です.
mmap の性質上,旧ファイルをそのまま書き換えると SEGV でこける可能性があります. >>502 httpd プロセスが多数ある状況では,前回呼んだ時と同じ httpd プロセスで
処理してもらうってことにはなかなかならないと思うので,その確認をするなら
httpd プロセス数を絞らないと難しいかもです. >>504
httpdのpidとかでチェックする、、、のかな。
でも、例えばlive8やlive16とかだと1280人もいるし。 >>505 やるとすればそうなりますね.dso.2ch.net だけ一時的に数を絞ってみるとか...... ファイルは管理人が必要なときに FTP で一気に
全サーバに配られる仕組みになっとります。 >>507
FTPでもrenameはできるので、
いったん read.cgi.new という名前で put して、
read.cgiにrenameするのがいいとおもわれますです。 Perl で FTP だったりするです。
現状までは書いたけど、それ以上は私の能力の限界だったり、、 あっ......>>503 は広告ファイルのことを意図して書いたんですが,
dlopen() も OS 内部で mmap() しますから read.cgi 自体もそうですし,
その他のデータファイル等も CGI 等でオープン中に中身が変わると
やはり不都合が生じる可能性があるので,基本的にその他のファイルも含めて
>>508 のような手順を踏むのがいいかも知れませんね. Net::FTP を使ってるなら、単にこれでいいのではと。
$ftp->put("read.cgi","read.cgi.new");
$ftp->rename("read.cgi.new","read.cgi");
$ftp->site("CHMOD","0755","read.cgi"); リンクはなくなるの?
スレや他サイトの<a>タグが全然つかなくなってるんですけど tiger 全部 dso 化したいですー > root ★さん
game10
news18
game9
etc4
life7
hobby7
で全部かな? おぉ、、、。すごい。
ちゃんと、上の広告入ってるですね。< news19
あとはime.nuかしら。
で、一番下のFOX ★は<b>と</b>で囲んだほうがよさげかも。 >>517
tiger503 ex7 済み
tiger504 game10
tiger505 news18
tiger506 game9/etc4/dso dsoのみ済み
tiger507 live16 済み
tiger508 life7
tiger509 news19 済み
tiger510 hobby7
上記、済み以外のところを作業してくるです。 って ime.nu って今やってもいいんだけど、
単に http://ime.nu/http://abc.bb/ とかってつけるんでしたっけ? http://ime.nu/abc.bb/
のように、http:// を除いた部分が入ります。
で、2ch.net内はime.nuを経由しないと。
で、桃色の場合はpinktowerになるのかな。 ime.nu でいいんでしたっけ?
いくつか種類があるような。 ftp://example.com/path/ や https://example.com/ は ime.nu 側が対応してなければ
直リンの方がいいでしょうけど. あっと ftp は別にいいとして
https:// は対応しなきゃ < あんかー付け >>519 のサーバ側の作業終了です。
これから、まずは news19 の read.cgi を入れておきます。 >>519 のサーバのread.cgiを、news19のものに入れ替えました。 >>519 のサーバは、read.cgi / bbs.cgi / subbbs.cgi の時には nokeepalive していたのを
dat直読み同様に keepalive 有効にしました。 私のほうの作業は、これでおわりのはず。
read.cgiはいったんread.soという名前でftp/putして
chmodしてrenameするのをやってみました。
Text file busyにもならないし、これがよいかなと。
ということで明日より出勤のため、そろそろおやすみなさい。 >>529 お疲れさまでした.
まぁあと気になるのは,Last-Modified チェックをなくしたことで,
リロードしまくりの人が多い場合にどうなるか,ってあたりですが. 最新のに入れ替えた >>519
>>531
どっちが負荷高いのかな? ってとこかと、
(転送量は気にしない場合)
わからんのだが、 >>530-531
ほんとうに働いたのは、FOXさんかと。
私はサーバの設定をごそごそしただけ。
で、>>531は、各サーバ(特にread.cgiが多いnews18とnews19)の
転送量でおのずとわかるのかなと。
ねるー。 >>534 ですね.
>>533 お疲れさまです.
まぁ Last-Modified チェック版と非チェック版を用意して比較するのもいいかも知れませんが. 寝ようと思ってnewsplusで確認したら、>>1 の出方が軒並み変なような。
あと、リンクが ? で切れてしまうような。 <base>を使わない以前のURLの書き方に戻してくれよぉ(´・ω・`) 今dsoの奴は常に
<base href="http://dso.2ch.net/myanmar/">
を出して、
「>>1」はdatのまま
<a href="../test/read.cgi/myanmar/1101888913/1" target="_blank">>>1</a>
ってなってるやん。 【事故】初詣での列に乗用車が衝突、15人負傷@千葉・成田山新勝寺[050103]
http://news19.2ch.net/test/read.cgi/newsplus/1104752252/
& でもリンク、切れちゃいますね。 >>541
サーバの負荷を下げるのが目的で組んでますから、 life7、game9、news19で、httpd(たぶん組み込まれたread.cgi)が、
暴走を起こしている模様。
15065 ch2life7 127 0 39904K 4840K CPU1 0 337:20 35.94% 35.94% httpd
15099 ch2life7 126 0 40384K 5124K RUN 0 341:22 35.30% 35.30% httpd
14880 ch2life7 125 0 39920K 4852K RUN 0 34:48 35.21% 35.21% httpd
14990 ch2life7 126 0 40256K 5152K RUN 0 34:04 34.52% 34.52% httpd
14267 ch2life7 125 0 39912K 4700K RUN 0 229:06 34.47% 34.47% httpd
15128 ch2life7 125 0 40264K 5232K RUN 0 34:33 34.47% 34.47% httpd
14872 ch2life7 125 0 39928K 4940K RUN 0 15:31 33.98% 33.98% httpd
これから、とりあえず順にhttpdをリスタートします。 こんなかんじ。
%uptime
10:09PM up 38 days, 23:10, 1 user, load averages: 10.60, 10.55, 10.56 hobby5 チン☆⌒ 凵\(\・∀・) まだぁ? news19は観測してなかったです。life7とgame9だけ。
httpdをリスタートしました。 >>548
しばらくは、こんなかんじですかね。
こういった「組み込みもの」のデバッグは、さて、どうするか。
やっぱ、gdbでプロセスにアタッチかしら。 ここ10年くらいデバッカーは使ってないなぁ、そういえば
勘で地道に、、
500 error とかの報告が上がると思われ、
その都度かと。 ◆新板をねだるスレ@秘密基地◆3
http://pie.bbspink.com/test/read.cgi/erobbs/1097750466/
bbspink.com 内のリンクも、ime.nu経由になってしまってます。 あと、bbspink.com内におけるリンクの表示は、
従来はpinktower.com経由だった気がするです。 あとは、bbspink.comだと、このへん↓の広告が微妙に違ってたかなと。
32 KB [ 2ちゃんねるが使っている 完全帯域保証 レンタルサーバー ] e.ofuda.cc、ひょっとしてちょっと苦しい、、、のかな。 おおっ
いれたまんま全サーバにくばっちまった、、、
そうでもないような、、、
観察中。。。 < ofuda イメージが表示されるのに、一呼吸ある気がするです。< e.ofuda.cc
httpdのチューニング次第かも、かも。 あと、前のread.cgiにあって今のにないのは、
・RAWMODE(廃止?)
・Last-Modified:(とりあえず入れない方向?)
・ひ(りゃが入れたトラックバック機能
あたり? RAWMODEってだいぶ前に廃止じゃなかったかな? >>558
dso化するっすかね < ofuda
トラックバックは入ってないですか? >>512
$ftp->put("read.cgi","read.cgi.new");
削除は?
unlinkとかあるですか?
$ftp->rename("read.cgi.new","read.cgi");
$ftp->site("CHMOD","0755","read.cgi");
$ftp->rename で、前のは上書きされるです。(一応試しました) renameした時点で新ファイルが旧ファイルを消してるから、
旧ファイルのパーミッションは残らないので
新ファイルに対して改めてパーミッション設定しないとだめなんじゃないかと >>566 のとおりですね。
コードを他のファイルと共通化したければ、
送り元のファイルのパーミッションをstat()か何かで見て覚えておいて、
そのパーミッションにあわせるコードを入れればいいのかな。 あとで メールしますが、
read.cgi に関しては dso が原本ということで、
配布バッチも直します。
つまり read.cgi を配布するときは
ここのを使わなきゃだめということで、
あちこちにあるやつは使うと read.cgi が暴走するです。
新しいバッチのテストはこれから、、
うまく行けばいいが、(今回は4〜5台暴走したようです) 例えば550レスぐらいあるときの動作が、前と違うですね。
○今まで:
■掲示板に戻る■ 関連ページ 全部 1- 101- 201- 301- 401- 501- 最新50 [PR] 2ちゃんねるカレンダー2005 [PR]
○今のもの:
■掲示板に戻る■ 関連ページ 全部 1- 最新50 [PR]2ちゃんねるカレンダー2005 [PR] >>570
http://dso.2ch.net/test/read.cgi/myanmar/1101888913/41-42
42 名前:FOX ★[sage] 投稿日:05/01/03 20:58:27 ID:???
汎用ブラウザって?
細切れ転送はやめようかと思っている
#とのことでしたー。 root▲さんへ。
業務連絡ありますのでQお願いします。
UINはメアド欄にも忍ばせてあります(161508648)。 全てのサーバ cobra/toger/banana で read.cgi の dso化が完了。
これから href の置き換え ime.nu 対応を行い
それが終了したら第一ステップは完。
第2ステップは
2-1) bug つぶし
2-2) 仕様の変なところは変更
2-3) 時代背景にあわせたデコレーション
こんなとこかと、 ■ このスレッドは過去ログ倉庫に格納されています