X



トップページ運用情報
1001コメント361KB
read.cgi再開発スレ Part2
■ このスレッドは過去ログ倉庫に格納されています
0001root▲ ★
垢版 |
05/01/17 06:11:01ID:???
◆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/
0120HTTP_USER_AGENT null
垢版 |
05/02/02 15:06:36ID:S/ryrFKD0
rootチャソ、"UA無し"も中間に入れてヨウ。。。頼むヨォ。。。
0121root▲ ★
垢版 |
05/02/02 15:11:34ID:???0
>>120
今UAなしだとどうなるんだっけ。
ちと試してみるか。
0122root▲ ★
垢版 |
05/02/02 15:12:53ID:???0
ただ切れるのか。いまいちすね。
ちと、見てみます。

$ telnet qb5.2ch.net 80
Trying 206.223.147.230...
Connected to qb5.2ch.net.
Escape character is '^]'.
GET /test/read.cgi/operate/1105909861/ HTTP/1.1
Host: qb5.2ch.net

Connection closed by foreign host.
0123root▲ ★
垢版 |
05/02/02 15:36:58ID:???0
UA無しもとりあえず許すようにした、、、けど、今後もそうするかは不明。
プログラムからぼこぼこ叩くのは、できるだけやめてほしかったりするかも。かも。

read.cgi ver 05.0.0.16 2005/02/02
0124動け動けウゴウゴ2ちゃんねる
垢版 |
05/02/02 17:52:40ID:O5nTMMBl0
>>121-123
あれ見えた!と思ってとんで来た!

どうもありかとう。
ぼこぼこ叩く様な香具師ってUA騙ったり、robots.txtシカトしたりしますよ、、、
なんか"hoge"とか出鱈目な UA 送っても繋がるのに、無しのときだけ繋がらないからオナガイしてみたの。
ありがと^^)ノシ
0129動け動けウゴウゴ2ちゃんねる
垢版 |
05/02/03 22:05:15ID:tL9gzx8W0
古いログを読むときに面倒だから
bbs=とkey=だけでも実装して欲しいなー。
memoriesのread.cgiは旧仕様だから問題ないけど
過疎板だと結構古いスレが生きてたりするし。
0132root▲ ★
垢版 |
05/02/04 16:30:51ID:???0
memoriesの5.3Rへのバージョンアップ & read.cgi の mod_cgidso 化を
考えているわけですが、、、。

これを実現するには、旧形式をサポートしないと苦しいっすね。
さて、どうすべか。
0133root▲ ★
垢版 |
05/02/04 16:31:24ID:???0
旧形式を積極的にサポートしない理由って、なんかあるんでしたっけ。
それとも単に、面倒だからやってないんだっけか。
0138 ◆cZfSunOs.U
垢版 |
05/02/05 00:53:24ID:yrmuPTpJ0
mod_rewrite でできないこともないかな......

RewriteEngine On
RewriteBase /test
RewriteCond %{QUERY_STRING} ^bbs=(\w+)&key=(\d+)(&st=(\d+))?(&to=(\d+))?(&(n)ofirst=true)?
RewriteRule ^(.*/?read\.cgi) $1/%1/%2/%4-%6%8? [R=permanent]
0139root▲ ★
垢版 |
05/02/05 01:18:07ID:???0
>>138
ひょー。

あとで、試してみるか、、、。
0140root▲ ★
垢版 |
05/02/05 05:37:16ID:???0
必死に Options +FollowSymLinks +SymLinksIfOwnerMatch って書いても、

Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /home/ch2teri/public_html/test/read.cgi

と言われて、403 Forbiddenになりますね。
ううむ。
0141 ◆cZfSunOs.U
垢版 |
05/02/05 10:09:15ID:yrmuPTpJ0
>>140
    /home/ch2teri/public_html/.htaccess
    /home/ch2teri/public_html/test/.htaccess
の2つあって,下の方ので FollowSymLinks 等をクリアしてしまっているとか......?
ちなみに.>>138 のは下の方のに入れるのが前提になってまして,
もし上の方のに入れるなら RewriteBase は / にして下さい.
0142root▲ ★
垢版 |
05/02/05 17:51:26ID:???0
>>141
test/.htaccess がありました。で、設定したら動きました。すみませんです。

で、teri.2ch.net に試しに入れてみましたが、どうも2つ問題があるみたいです。

1)なんか余計な - がつくみたい。(mod_rewrite側の問題?)

☆ 質問でも雑談でもOKのスレッド 2 ☆
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=1000047608

が、

http://teri.2ch.net/test/read.cgi/accuse/1000047608/-

になります。

(続き)
0143root▲ ★
垢版 |
05/02/05 17:52:59ID:???0
(続き)

2)999999999以前の倉庫形式に対応していない。(read.cgiの問題)

curry鯖重すぎます。
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=996593101

のように、999999999以前の倉庫だと「隊長!過去ログ倉庫で…」にならずに、
error 3001 - datが存在しません。削除されたかURL間違ってますよ。
になるようです。

これは、

・999999999以前の倉庫形式

curry鯖重すぎます。
http://teri.2ch.net/accuse/kako/996/996593101.html

・1000000000以降の倉庫形式

☆ 質問でも雑談でもOKのスレッド 2 ☆
http://teri.2ch.net/accuse/kako/1000/10000/1000047608.html

の、ディレクトリ構造が違うためかなと。

これからちとおでかけなので、teriの設定はいったん元に戻しておきます。
0144ピロリ
垢版 |
05/02/05 18:41:13ID:mh5dglk80
私の意見

何もしないのが吉かと、
0145root▲ ★
垢版 |
05/02/05 20:48:38ID:???0
今memoriesに入っているやつは当分、旧版のread.cgiで動かすってことすか。
まぁ、特に困ってないですしね。
優先度はそんなに高くないかなと。
0146 ◆cZfSunOs.U
垢版 |
05/02/06 00:08:02ID:8vvhh6i/0
>>142
>1)なんか余計な - がつくみたい。(mod_rewrite側の問題?)

まぁ mod_rewrite を使った対処は苦肉の策ではありますからね.
- があっても一応表示されるならそれでいいか,って感じではあったんですが,
他にも QUERY_STRING でのパラメータの並び順が変わると対応できないとか
限界はあったりします.結論的に >>144-145 のような方針ならそれもいいかな,と.
0147ピロリ
垢版 |
05/02/10 13:49:19ID:5efqv5SM0
と思ったけど
過去ログ用だから「過去ログにありました」って表示するだけだったりする?
0148root▲ ★
垢版 |
05/02/10 13:53:28ID:???0
>>147
…ですね。あるいは「過去ログ倉庫にもありませんでした」を表示で。
0149ピロリ
垢版 |
05/02/10 13:57:09ID:5efqv5SM0
ちなみに
teri だけ実験用に .so 仕様の read.cgi にする事出来ますか?
0150root▲ ★
垢版 |
05/02/10 13:58:42ID:???0
>>149
できます。やっておきましょ。
amd64なので、live8から持ってきてくださいです。
0151ピロリ
垢版 |
05/02/10 13:59:40ID:5efqv5SM0
はいはいー
0152ピロリ
垢版 |
05/02/10 14:00:51ID:5efqv5SM0
read.cgi@teri は当面工事中ということで
0156ピロリ
垢版 |
05/02/10 14:14:47ID:5efqv5SM0
旧形式というと

<> でないやつか、、、
頭がクリアなときにでもがんばって見ます
(最近は monce a month だったり)
0157root▲ ★
垢版 |
05/02/10 14:20:21ID:???0
>>156
おぉ。「teriタイプ」でないやつですね。
そういうことじゃなくて、PATH_INFOじゃないやつってつもりでした。

# このへんは私もあとづけ知識なんで、詳しくないのです。
0161ピロリ
垢版 |
05/02/11 16:46:30ID:afI88eDc0
おおっ
0162ピロリ
垢版 |
05/02/11 16:49:24ID:afI88eDc0
なおしたー
0163動け動けウゴウゴ2ちゃんねる
垢版 |
05/02/12 17:02:09ID:4/NGMAdPO
死んだ?
0165動け動けウゴウゴ2ちゃんねる
垢版 |
05/02/12 22:26:29ID:nUV+3n/x0
っこんにちわ

さようなら
0166動け動けウゴウゴ2ちゃんねる
垢版 |
05/02/12 22:27:03ID:jH5KqMBY0
開発頑張って下さい。
応援してます。
0169動け動けウゴウゴ2ちゃんねる
垢版 |
05/02/16 22:23:18ID:KqOl6lli0
ブラウザを立ち上げなおしてみてください。←これうざい
0173某47 ◆ap/yuix/tw
垢版 |
05/02/17 23:38:26ID:lTEainrd0
>>172
ああ、なるほど。わかりました。

◎datファイルの記述
<a href="../test/read.cgi/anichara2/1100865159/2-10" target="_blank">>>2-10</a>

◎read.cgiの出力するHTMLの記述
<a href="../test/read.cgi/anichara2/1100865159/2-10" target="_blank">>>2-10</a>

read.cgiでは全く手を加えていないわけです。ということはbbs.cgiなんですが、これって対応できるのかなあ
0178root▲ ★
垢版 |
05/02/21 06:03:05ID:???0
>>177
RFC 3986 的に | ってURIに使えるんだっけか。
0181ピロリ
垢版 |
05/02/21 18:18:03ID:/RhNYuDM0
なんか変なの?
0182 ◆cZfSunOs.U
垢版 |
05/02/22 13:49:07ID:c8ZkzWjZ0
off-topic ですが......

http://qb5.2ch.net/test/read.cgi/operate/1087199303/488-490n
>488 名前: FOX ★ 投稿日: 05/01/03 23:08:41 ID:???
>  ちなみに modcgi_dso のホームページってどこなんですか? >>485
>  リンクしようかと、
>
>489 名前: ◆cZfSunOs.U 投稿日: 05/01/03 23:12:22 ID:yt/ZsWUR
>  >>488 現状ではないです.作るなら 2ch Wiki あたりにとか......
>
>490 名前: FOX ★ 投稿日: 05/01/03 23:16:50 ID:???
>  りょうかいですー
>  static なページを作ってそこにリンクしておこう
>  奮戦気あたりをぼちぼち書いて、

ってことでしたが,未だ

http://server.maido3.com/dso/
>準備中。。。

なので,当方で作ってみますた.

http://sunos.saita.ma/mod_cgidso.html
http://sunos.saita.ma/2ch-cgi-lw.html
0187root▲ ★
垢版 |
05/02/23 02:49:10ID:???0
>>182
おぉー、簡潔かつすばらしいです。
0188 ◆cZfSunOs.U
垢版 |
05/02/23 07:56:37ID:S+k+pDxJ0
まぁ,リンクの変更はよろしければお願いします,ということで......


で,こういう形での Web 公開に併せてモジュールのコード見直しも行ったんですが,
mod_cgidso では今まで dso_main() からの戻り値を単純に捨てていたのを
意味を持たせるように変更しました.あまり大きな変更ではないので
直ちにではなくてもいいですが,Apache のバージョンアップなどの際に
ついでに mod_cgidso の方も更新をお願いします.

で,その変更に伴う影響ですが,dso_main() からの戻り値が 0 である限り
挙動に変化はありません.もっとも,0 という数値を直接指定ではなく

    return OK;

のように,OK というマクロ定義を用いるようにしてもらった方がいいですが.
一方,例えば http://dso.2ch.net/test/read.cgi/myanmar/1101888913/54
で言われているようなリダイレクトをする際には

    apr_table_setn(r->headers_out, "Location", "/new-URL/");
    return HTTP_MOVED_PERMANENTLY;

のように行えるようになる,ということです.
0189ピロリ
垢版 |
05/02/23 13:32:02ID:0y8qCBXm0
おおっ
0191root▲ ★
垢版 |
05/02/23 17:11:39ID:???0
>>188
どもです。あのページから最新版とれるんでしたっけ。
0194 ◆cZfSunOs.U
垢版 |
05/02/23 20:30:00ID:S+k+pDxJ0
>>191 どもです.192 さん仰せのように取れますです.
0196ピロリ
垢版 |
05/03/14 00:35:55ID:iYqDrHMS0
read.cgi@dso を LA(LOad Average)=1.0 以上の場合
read.cgi を「人大杉」表示にした

これでどれくらいの効果があるかわからないがテストしてみよう。
1.0 の値は 10.0 くらいが妥当か? @banana
でも tiger もあるしな・・・

read.cgi 内で Banana/Tiger/Cobra の区別はどうやって見るんだ?
0197root▲ ★
垢版 |
05/03/14 00:39:45ID:???0
移動、了解。

今、LA=1以上だと人大杉すか。
0198ピロリ
垢版 |
05/03/14 00:39:55ID:iYqDrHMS0
Tiger/Banana/Cobra の自動判定は
そのうちということで
今回はソースに埋め込んでみよう

Tiger/Cobra = 20.00
Banana = 5.00

あたりがリミッタかな?
0199動け動けウゴウゴ2ちゃんねる
垢版 |
05/03/14 00:42:55ID:qzCrFiuO0
   ,   _ ノ)
  γ∞γ~  \  ハニャン
  |  / 从从) )
  ヽ | | l  l |〃   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  `从ハ~_ーノ) ∬< ピロリさん、rootさん、お茶どぞー♪
     つ旦__))つ旦 \_____________
0200ピロリ
垢版 |
05/03/14 00:49:33ID:iYqDrHMS0
実験するです

banana = 4.0
tiger/cobra = 10.00

ではじめます
0201root▲ ★
垢版 |
05/03/14 00:50:05ID:???0
>>198
ex7(tiger503)とlive系(oyster901 = live8 / tiger507 = live16は実験中なので、リミッターなしをきぼんぬ。
あとは、そんなところだと思います。
0202root▲ ★
垢版 |
05/03/14 00:50:30ID:???0
>>200
それは、さすがに少なすぎっす、、、。
0203ピロリ
垢版 |
05/03/14 00:52:34ID:iYqDrHMS0
少なくしないと実験にならないです
これでも今の時間だとでれも人大杉にならないような

実際に負荷が上がって
人大杉になって自力で解除になる

というのが実現できたら意味のあることだったと言うことですなぁ
0204root▲ ★
垢版 |
05/03/14 00:54:31ID:???0
>>203
ふむ。

さすがにex7は、人大杉になったようで。
0205root▲ ★
垢版 |
05/03/14 00:55:03ID:???0
効果絶大ですね。@ ex7
load averages: 11.90, 23.87, 27.27
0206ピロリ
垢版 |
05/03/14 00:56:15ID:iYqDrHMS0
ほほぅ

ホントに効果絶大だ、、、
私も ex7 観察してたっす
0207root▲ ★
垢版 |
05/03/14 00:56:42ID:???0
NTVのニートの番組が終わったせいかもしれないけど、今10切ったですね。@ ex7

load averages: 8.13, 19.76, 25.39
0208root▲ ★
垢版 |
05/03/14 00:57:28ID:???0
ってことは、読み手と書き手を分断できるだけで、軽く倍は出るってことすかね。
0209ピロリ
垢版 |
05/03/14 01:02:38ID:iYqDrHMS0
>>208
さすがに予想は難しいなぁ

Banana 4.0
Tiger 20.0
実験サーバ(live16,ex7,live8) 200.0

にするっす
0211 ◆cZfSunOs.U
垢版 |
05/03/14 08:45:04ID:ZUvFJHJc0
Tiger / Banana / Cobra の自動判定より,httpd.conf か .htaccess で

    SetEnv ReadCgiLoadAvgLimit 10

のように設定するのが簡単で,設定変更も柔軟にできるのではないでしょうか.
read.cgi ではこのような感じで.

    double loadavg;
    const char *loadavglimit;

    getloadavg(&loadavg, 1);
    loadavglimit = apr_table_get(r->subprocess_env, "ReadCgiLoadAvgLimit");
    if (loadavglimit && loadavg >= atof(loadavglimit)) {
        apr_table_setn(r->err_headers_out, "X-Load-Avg",
                       apr_psprintf(r->pool, "%.2f (Limit = %s)", loadavg, loadavglimit));
        return HTTP_SERVICE_UNAVAILABLE;
    }


あと,read.cgi そのものを軽くするということでは,Last-Modified チェック + mod_mem_cache
http://dso.2ch.net/test/read.cgi/myanmar/1101888913/64-68n
が実運用でどの程度効果があるかも見てみたいところです.
0212ピロリ
垢版 |
05/03/14 22:06:44ID:F+LBf+bG0
>>211
そですねぇ
そんな感じにしますかねぇ

music4 の負荷が順調に上がってきている
発動するかも、
0213ピロリ
垢版 |
05/03/14 23:40:29ID:F+LBf+bG0
某板がうるさいので
ex7 , live16 も 再導入
0216root▲ ★
垢版 |
05/03/15 00:13:02ID:???0
誘導されてきました。そういうことでしたか。

新たな試みを実施するため、ex7のread.cgiリミッターを一時的にはずしました。

httpd => speedy => speedy_backendだった起動方法を、
httpd => speedy_backendの直接起動に変更。

こっちでやっています。
スレタイを、ex7総合実験スレ、とでもすればよかったかも。

【実験】ミニ雪だるま作戦―ex7で3/8 3:10あたりから実験はじめます
http://qb5.2ch.net/test/read.cgi/operate/1110218877/
0217root▲ ★
垢版 |
NGNG
移転に伴い、read.cgi の自動人大杉装置の閾値を、

live16 live20 ex10 : LA=200 (実験用、事実上ノーリミット)
他のtigerサーバ : LA=20
bananaサーバ : LA=4

に再設定した。
■ このスレッドは過去ログ倉庫に格納されています

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