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/ まずは
2002をなんとかしてみた
http://teri.2ch.net/test/read.cgi?bbs=accuse&key=1000216844
これでok か?
あと <> で無いやつのURL見つけたら
出てきたときに何とかする方向で >>158
bbs= と key= を逆にすると
http://teri.2ch.net/test/read.cgi?key=1000216844&bbs=accuse
2ちゃんねる error 8102
error 8102 番のメッセージはなににすればいい? ブラウザを立ち上げなおしてみてください。←これうざい >>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なんですが、これって対応できるのかなあ datに書いちゃってるんだ
あと話し変わるけど950超えと1000越えの文字背景色変えて欲しいと思ったり 以前のバージョンは、この手の問題はほぼ全てつぶしてあったんだけどね >>177
RFC 3986 的に | ってURIに使えるんだっけか。 >>178
できないんなら「%7C」へ変換してしまえばすむ話かと 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 >>182
乙です。
というわけでwiki改変しますー >>183
まちがってbbs.cgiを先にやってしまいました。
編集ページが満杯なのでしばしお待ちをw 一番下の所の「DSO(Dynamic Shared Object)」のリンクは変更しないの? まぁ,リンクの変更はよろしければお願いします,ということで......
で,こういう形での 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;
のように行えるようになる,ということです. >>189
*「あたらしい モジュールを いれますか?
→はい
いいえ >>188
どもです。あのページから最新版とれるんでしたっけ。 read.cgiとかをオープンソース化してほすぃ。。。 >>191 どもです.192 さん仰せのように取れますです. というわけで、memories関連はこちらで。
■ read.cgi@memories のDSO化 (part1)
http://qb5.2ch.net/test/read.cgi/operate/1109427188/ read.cgi@dso を LA(LOad Average)=1.0 以上の場合
read.cgi を「人大杉」表示にした
これでどれくらいの効果があるかわからないがテストしてみよう。
1.0 の値は 10.0 くらいが妥当か? @banana
でも tiger もあるしな・・・
read.cgi 内で Banana/Tiger/Cobra の区別はどうやって見るんだ? Tiger/Banana/Cobra の自動判定は
そのうちということで
今回はソースに埋め込んでみよう
Tiger/Cobra = 20.00
Banana = 5.00
あたりがリミッタかな? , _ ノ)
γ∞γ~ \ ハニャン
| / 从从) )
ヽ | | l l |〃 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
`从ハ~_ーノ) ∬< ピロリさん、rootさん、お茶どぞー♪
つ旦__))つ旦 \_____________ 実験するです
banana = 4.0
tiger/cobra = 10.00
ではじめます >>198
ex7(tiger503)とlive系(oyster901 = live8 / tiger507 = live16は実験中なので、リミッターなしをきぼんぬ。
あとは、そんなところだと思います。 少なくしないと実験にならないです
これでも今の時間だとでれも人大杉にならないような
実際に負荷が上がって
人大杉になって自力で解除になる
というのが実現できたら意味のあることだったと言うことですなぁ >>203
ふむ。
さすがにex7は、人大杉になったようで。 効果絶大ですね。@ ex7
load averages: 11.90, 23.87, 27.27 ほほぅ
ホントに効果絶大だ、、、
私も ex7 観察してたっす NTVのニートの番組が終わったせいかもしれないけど、今10切ったですね。@ ex7
load averages: 8.13, 19.76, 25.39 ってことは、読み手と書き手を分断できるだけで、軽く倍は出るってことすかね。 >>208
さすがに予想は難しいなぁ
Banana 4.0
Tiger 20.0
実験サーバ(live16,ex7,live8) 200.0
にするっす 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
が実運用でどの程度効果があるかも見てみたいところです. >>211
そですねぇ
そんな感じにしますかねぇ
music4 の負荷が順調に上がってきている
発動するかも、 某板がうるさいので
ex7 , live16 も 再導入 誘導されてきました。そういうことでしたか。
新たな試みを実施するため、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/ 移転に伴い、read.cgi の自動人大杉装置の閾値を、
live16 live20 ex10 : LA=200 (実験用、事実上ノーリミット)
他のtigerサーバ : LA=20
bananaサーバ : LA=4
に再設定した。 >>217
お疲れさまです・・・
軽いのは嬉しいなぁ、今夜が楽しみです・・・ >LoadAverage = 5.00 (4.00以上は人大杉)
>人大杉
>このスレを見る方法http://www2.2ch.net/live.html
このスレを見る方法の後のリンク先が「もうずっと人大杉」って……(^^;;;)
リンク先はp2.2chかMonazillaがいいと思うのですが。 若槻の2ch発言で自動人大杉発動…とか結構面白いなこのシステム 曜日が表示されるようになったのはここの人達のお陰でつか?
だとしたら乙です 前100をクリックすると前101を表示します。前100・次100で移動するとずれるので不便です(´・ω・`)
書き込み数が1のスレッドを http://鯖/test/read.cgi/板/スレ/1-100 で開くと書き込みが表示されません。2ch検索が/1-100を使っているので、そこから新しく建ったスレを開いて表示されなくて(´・ω・`) 皇紀2665/04/01(金) っての関連は何処スレで決まったの?
専ブラが誤作動する…orz 2chの動作報告はここで。 パート16
http://qb5.2ch.net/test/read.cgi/operate/1103455176/758
758 名前:動け動けウゴウゴ2ちゃんねる[] 投稿日:2005/04/17(日) 22:25:31 ID:Gsk3CeB70
あと人大杉画面の「掲示板へ戻る」のリンクがhttp:///になってる
だそうです。
たしかに、そうなるみたい。 .│
\ │ /
\__..│__./
,:-‐'" ̄ \│ノヽ-、.
/ \
/ \
/ ヽ
/ ヽ
| ヽ
| ,,,,;;::''''' ヽ
| ,,,,;;::::::::::::::: __ │
| " __ :::: '"ゞ'-' │
| - '"-ゞ'-' ::::::... │
| ::::::: │
| ( ,-、 ,:‐、 │
| │
| __,-'ニニニヽ . │
. │ ヾニ二ン" │ <ブーン
│ │
丿 │ /⌒ヽ
⊂二二二( ^ω^)二⊃
| / ブーン
( ヽノ
ノ>ノ
三 レレ /⌒\
∩ / @∀@ \
| |__ / @∀@∀@ ヽ ___
|___( @∀@∀@∀@∀@)__ | コノスレオモスレー
| @∀@∀@∀@ / | |
(  ̄ヽ ノ ∪
ノ ̄\ ノ
三 |_/ |_/ /⌒ヽ ブーン
二( ^ω^)二⊃ /⌒ヽ ブーン
| / /⌒ヽ ブーン 二( ^ω^)二⊃
( ヽノ 二( ^ω^)/⌒ヽブーン /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ ブーン
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃
ノ /⌒ヽ ブーン レレ | /
⊂二二二( ^ω^)二⊃ /⌒ヽ ブーン ( ヽノ
| / レ 二( ^ω^)二⊃ ノ>ノ
( ヽノ | / レレ
ノ>ノ ( ヽノ
三 レレ ノ>ノ ,.-''"¨ ̄¨`' ‐ 、
(,,(,,i,,,i,,,,,,,,i,,,,i,,),,)
) (
∧,.∧゚д゚ )
/・ ・`ヽと )
(。。ノ しヽ
/ヽ / ノ
( へ /|.|
ヽヽ| | U
| | パコパコ
U ∧_∧
⊂二二< `ш´>二⊃
| / ブーン
( ヽノ
ノ>ノ
三 レレ
/⌒ヽ ブーン
二( ^ω^)二⊃ /⌒ヽ ブーン
| / /⌒ヽ ブーン 二( ^ω^)二⊃
( ヽノ 二( ^ω^)/⌒ヽブーン /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ ブーン
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃
ノ /⌒ヽ ブーン レレ | /
⊂二二二( ^ω^)二⊃ /⌒ヽ ブーン ( ヽノ
| / レ 二( ^ω^)二⊃ ノ>ノ
( ヽノ | / レレ
ノ>ノ ( ヽノ
三 レレ ノ>ノ
⊂二二(^ω^)二⊃ブーン
ブ━(^ω^≡^ω^)━ン!!
ブ━(n‘ω‘)η゚・*ン!!
ブ━(^ω^)(ω^*)━ン!!
⊂ つ⊂ つ
(( ⊂、/ \〜つ
ミ ∪ ≡ ∪′彡 ,.-''"¨ ̄¨`' ‐ 、
(,,(,,i,,,i,,,,,,,,i,,,,i,,),,)
) (
∧,.∧^ω^ )
/・ ・`ヽと )
(。。ノ しヽ
/ヽ / ノ
( へ /|.|
ヽヽ| | U
| | パコパコ
U
ちょwwwwwwwwwwwここはヤバスwwwwwwwwwwwwwwwww
/⌒ヽ ブーン
二( ^ω^)二⊃ /⌒ヽ ブーン
| / /⌒ヽ ブーン 二( ^ω^)二⊃
( ヽノ 二( ^ω^)/⌒ヽブーン /
ノ>ノ ⊂二二二( ^ω^)二⊃ ヽノ /⌒ヽ ブーン
レレ ( ヽノ| / ノ>ノ 二二( ^ω^)二⊃
ノ /⌒ヽ ブーン レレ | /
⊂二二二( ^ω^)二⊃ /⌒ヽ ブーン ( ヽノ
| / レ 二( ^ω^)二⊃ ノ>ノ
( ヽノ | / レレ
ノ>ノ ( ヽノ
三 レレ ノ>ノ
怒られちゃいます><
全部ラウンジの仕業なんです><
vipは関係ないです>< ファミレスでよくみかける、頭の弱いお子様のようだな。
店内をブンブン飛んでいるのもそっくり。 これを、あげよう。
read.cgi に、
・ex11 anime を tiger サーバとして、
・ex12 ex13 live21 を cobra サーバとして、
それぞれ登録しました。
これで、LAが banana 並みでも人大杉になってしまう現象は、なおりました。
今、サーバ名できめうちになっていますが、
これをうまく判定するのは、どうしたらよかんべか。
具体的には、CPUの種別(Pen4, Xeon, Opteron)あたりをCな言語からとれると、よかったり。 %sysctl -a | grep Xeon
hw.model: Intel(R) Xeon(TM) CPU 2.80GHz
これ、つかうかぁ。
%./sample
AMD Opteron(tm) Processor 242
とれた、とれた。
これを、組み込むか。
#include <stdio.h>
#include <sys/types.h>
#include <sys/sysctl.h>
int main(void)
{
int mib[2];
char model_name[BUFSIZ];
size_t len;
mib[0] = CTL_HW;
mib[1] = HW_MODEL;
len = sizeof(model_name);
sysctl(mib, 2, &model_name, &len, NULL, 0);
printf("%s\n", model_name);
return 0;
} read.cgi ver 05.0.1.1 2005/06/02
これで、今後新しいCPUがこない限り、埋め込みしなくて済むはず。
/****************************************************************/
/* GetHwModel */
/****************************************************************/
int GetHwModel(char *model_name, size_t len)
{
int mib[2];
mib[0] = CTL_HW;
mib[1] = HW_MODEL;
if (sysctl(mib, 2, model_name, &len, NULL, 0) == -1) return -1;
return 0;
}
/****************************************************************/
/* GetMaxLA */
/****************************************************************/
double GetMaxLA(CH2READ *ch2)
{
char model_name[BUFSIZ];
if(GetHwModel(model_name, sizeof(model_name)) == -1) return maxLAbanana ;
if(strstr(model_name,"Opteron")) return maxLAcobra ;
if(strstr(model_name,"Xeon")) return maxLAtiger ;
if(strstr(model_name,"Pentium")) return maxLAbanana ;
return maxLAbanana ;
} カキコ本文の行末に余計な半角スペースがついてしまっていて
コピペするときに邪魔なんですが。。
全ての行末についてくるので余計なバイトも食うし、なんとかなりませんか? >>254
>コピペするときに邪魔なんですが。。
これが一因 254じゃないけど
>>255
わざとってこと?何の意味があんの?わかんないんだけど。 おしまいの空白は、こわれたSJISを突っ込まれても大丈夫なようにするためですね。
とりあえず、やむを得ないと思われ。 ■ このスレッドは過去ログ倉庫に格納されています