X



トップページ運用情報
1001コメント347KB

bbs.cgi再開発プロジェクト 3

レス数が900を超えています。1000を超えると表示できなくなるよ。
00012chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆yBEncckFOU
垢版 |
04/02/13 19:08ID:o3jHs/Mb
peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。

関連スレ
【Project peko】2ch特化型サーバ構築作戦 Part6
http://qb3.2ch.net/test/read.cgi/operate/1076413123/
◆ 全サーバトリップ統一作戦
http://qb3.2ch.net/test/read.cgi/operate/1067245837/
bby -- スレッド情報一元管理システム構築スレ
http://qb3.2ch.net/test/read.cgi/operate/1073058944/
BBQ システム(公開串リストメンテ)
http://qb3.2ch.net/test/read.cgi/operate/1073061576/
【連投規制】Samba24 情報要望スレ その3
http://qb3.2ch.net/test/read.cgi/operate/1075568934/
【広告】Rock54【自動排除】 3
http://qb3.2ch.net/test/read.cgi/operate/1074735308/
■ 新しいサーバで read.cgi が正しく動かない問題。 (dat落ち)
http://qb.2ch.net/test/read.cgi/operate/1047840578/


前スレ
bbs.cgi 再開発プロジェクト
http://qb3.2ch.net/test/read.cgi/operate/1053067870/
bbs.cgi再開発プロジェクト2
http://qb3.2ch.net/test/read.cgi/operate/1069144193/
0819動け動けウゴウゴ2ちゃんねる
垢版 |
04/05/09 22:33ID:yksp9KtL
>>740
利用者を(見かけ上)待たせない小技。
処理の最初で標準出力と標準エラー出力を閉じると
利用者のブラウザには結果がすぐに表示される。(htttpd依存?)
成否が分からないのが難点ですが...
-----------------
#!/usr/bin/perl

print "Content-Type: text/html; charset=shift_jis\n\n";
print "処理を受け付けました";
close STDOUT;
close STDERR;
# 時間の掛かる処理

0821ひろゆき@どうやら管理人 ★
垢版 |
04/05/12 17:37ID:???
>>819
書き込み後にウエイトを置いてるように、
利用者をわざと待たせるようにしていたり、、、
>最近のbbs.cgi
0822動け動けウゴウゴ2ちゃんねる
垢版 |
04/05/12 17:48ID:6FcSbOY+
>>821
途中経過を表示させるってのはいかが?

アクセス規制チェック中。。。 OK
連投規制チェック。。。 OK
ごにょごにょチェック中。。。 NG
ERROR!
お布団干したままですよ( ̄ー ̄)ニヤリッ

みたいな。
0823ひろゆき@どうやら管理人 ★
垢版 |
04/05/12 17:50ID:???
途中経過を表示することになんか意味あるのかなぁ、、、
0825動け動けウゴウゴ2ちゃんねる
垢版 |
04/05/12 17:56ID:6FcSbOY+
>>823
リロード抑止にならないかなって。
何も表示されることなくただ待たされるとなると F5 押したくなるっていうのが一般的心理かと。
0826動け動けウゴウゴ2ちゃんねる
垢版 |
04/05/12 18:07ID:6FcSbOY+
あと蛇足になるんだけれども、書き込み後の自動ジャンプは切れないかな?
わざわざ100KB以上もある板トップに強制移動したところで無駄な転送が発生するし、
誰もが板トップに戻ることを期待していない(書き込み元のスレッドに戻りたい場合もある)かもしれないし。

板トップの広告に関しては、「書きこみました」画面に入れてもいいんじゃないかな?
0827▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo
垢版 |
04/05/12 18:23ID:1zJCvsBa
それだったら

「書き込み処理しています、しばしお待ちください。。。」

(エラーならここで表示)

(処理が終わった)

「終わりました。5秒後にトップページへ飛びます」

(直後にmetaタグを仕込む)

(終わり)

でいいような気がしますが。>提案者&総帥
0828ピロリ
垢版 |
04/05/12 18:32ID:Co1qIlT3
「歯みがいたか?」

「宿題やったか?」

「風呂はいったか?」

「妹の様子はどうだい?」

「肛門の調子はどうよ?」

でいいような気がしますが。
0830 ◆f0.zuburi6
垢版 |
04/05/12 19:05ID:s/b9IZ17
肛門は晴れ 所により一時血が出るでしょう
08327M. ◆dq7M./4Uw.
垢版 |
04/05/12 22:40ID:mghzDR5j
自動じゃんぷきれー、
っつのは前からさんざんがいしゅつきしゅつだった希ガス元素。
0833動け動けウゴウゴ2ちゃんねる
垢版 |
04/05/13 02:33ID:N90mjkQ6
本題とは逸れるが自動ジャンプなんて要らないと思う。

-------------------------
書き込みが終了しました。

・○○板(リンク)
・にちゃんねる(リンク)

-------------------------

これくらいで良いっしょ。
0835nobody
垢版 |
04/05/16 18:42ID:iQGerbOS
>805
そこそこ使えるL4 ロードバランサって300万円ぐらいするよね、Alteonとか
F5とかServer Ironとか。

それを海の向こうに設置して運営するコストは馬鹿にならんと思う。
このての保守契約は24h365dayにすると極端に高くなるから
0836787
垢版 |
04/05/17 23:48ID:xGAOnJKQ
負荷分散機のパフォーマンス調査を行っていました。
むちゃくちゃ返信遅れていますし、ややスレ違いな場所に返信してごめんなさい。
・・・そろそろスレたてた方がいいのかな・・。

>835

そうなんですよね。高すぎるんですよ。
ただいま、負荷分散機のパフォーマンス調査を行っているんですが、
やたらと古いデータしかないんですよね・・・。

ttp://www.veritest.com/clients/reports/f5/layer4_layer7_comparison.pdf
ttp://www.linuxvirtualserver.org/Joseph.Mack/performance/single_realserver_performance.html

やっぱりソフトウェアベースでは無理かなぁ。
となると一度実験してみないとだめかも、どこかでこっそりとやってこよう。
0838とんすけ ◆MytskeE.Vg
垢版 |
04/05/21 12:47ID:psZQ4yMs
こっちにも関りがあることなのでコピペ。

22 :動け動けウゴウゴ2ちゃんねる :04/05/21 10:54 ID:/Wl6bf1i
AirH"PHONEセンター特認IPアドレス帯域追加おながいします

AirH"PHONEセンターIPアドレス帯域
http://www.ddipocket.co.jp/p_s/products/airh_phone/ip.html
61.198.167.0/24
61.198.253.128/25
追加

0840動け動けウゴウゴ2ちゃんねる
垢版 |
04/05/26 22:39ID:lLrBTJ+c
>>827
seikou=0
sippai=1
era=1
if(kakikomi=0)
{
mes "書き込み処理しています、しばしお待ち下さい。。。"
seikou=seikou+1
}
elseif
{
mes "エラーですよん。。。( ̄ー ̄)ニヤリ"
}
if(seikou=2)
{
wait 500
mes "終わりました。五秒後にトップページへ飛びます。"
goto *top
}
stop
0841動け動けウゴウゴ2ちゃんねる
垢版 |
04/05/27 23:30ID:6Yr/+iFH
119 名前:サザン ★ 投稿日:04/05/27 23:15 ID:???
むぅ

bbq.2ch.net
148 processes: 1 running, 147 sleeping

120 名前:動け動けウゴウゴ2ちゃんねる メェル:sage 投稿日:04/05/27 23:15 ID:ThpJLAhB
C:\WINDOWS\デスクトップ>ping bbq.2ch.net

Pinging bbq.2ch.net [206.223.147.35] with 32 bytes of data:

Reply from 206.223.147.35: bytes=32 time=118ms TTL=46
Reply from 206.223.147.35: bytes=32 time=119ms TTL=46
Reply from 206.223.147.35: bytes=32 time=120ms TTL=46
Reply from 206.223.147.35: bytes=32 time=137ms TTL=46

Ping statistics for 206.223.147.35:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 118ms, Maximum = 137ms, Average = 123ms
?

121 名前:南アルプス ◆28UfbftxkA  投稿日:04/05/27 23:16 ID:AFwyjLAs
>>119
それは直ってないとの見解で宜しいでしょうか?


123 名前: ◆f0.zuburi6  メェル:sage 投稿日:04/05/27 23:17 ID:Wg2kMH9n
>>119
一度に一個しかプロセスが走らない?

124 名前:動け動けウゴウゴ2ちゃんねる メェル:sage 投稿日:04/05/27 23:18 ID:K2FslckF
BBQが止まったなら、、、(ry

125 名前:未承諾広告 ◆TWARamEjuA  メェル:sage 投稿日:04/05/27 23:19 ID:JtwbarS8
>>119
media: Ethernet 10baseT/UTP <full-duplex>
これってまずくないですかねぇ(汗)

127 名前: ◆Reffi/bQ.c  メェル:sage 投稿日:04/05/27 23:21 ID:nGsxpDn8
>125
あ〜ひゃひゃひゃ
それじゃぁ、めちゃくちゃ重くて当たり前のような(滝汗

128 名前:動け動けウゴウゴ2ちゃんねる メェル:sage 投稿日:04/05/27 23:22 ID:l+Xr0uKn
なんでmulch-proccessingができないんかな・・・。<bbq
rootさんはいないのかな。
0842動け動けウゴウゴ2ちゃんねる
垢版 |
04/05/31 23:29ID:bs05VOav
超カメレスで悪いが、随分前にあった「IO::File使え」という意見。
IO::FileをuseするとIO::SeekableだのFile::Specだの余計なモジュールを
中で読みまくるので、激しく重くなるよ。

open my $fh, '<', './unko.txt';
...
close $fh;

オブジェクト指向でファイル操作するのは諦めて、こうやった方が軽い。
0846動け動けウゴウゴ2ちゃんねる
垢版 |
04/06/02 07:00ID:g/lHGssg
>>844
read.cgi以外の*.cgiを処理するmod_perl有効のhttpdと。
*.gif|*.htmlなどの固定ファイル専用のSTATICビルドしたhttpd。
その二つを別ポートもしくはaliasした別IPで立ち上げて。
poundで分岐するってのはどうだ?
0847mod_perl
垢版 |
04/06/02 09:46ID:qSUlVdsV
おそらく>>844は理解できていないか失敗した厨房
Apache拡張ガイドでも嫁

>>846
2chにそのような運用を期待するのは浅はかだと思わんかね
0848動け動けウゴウゴ2ちゃんねる
垢版 |
04/06/02 13:03ID:j+uMUo52
そもそも、httpd数とプロセス(コネクション)数は1対1にする必要ないんだけどね。
httpdが数百個も動いてメモリが気になるなら、マルチスレッドで動かせばいいだけでしょ。
apache2を使っているんだから。
0852 ◆Reffi/bQ.c @reffi@報告人 ★
垢版 |
04/06/11 17:08ID:???
my $ripfile = $PATH . "内緒";
my (@IP, @IIP, $TIP);


if($FORM{'subject'} ne ""){

#スレッド立てすぎチェック
my (@IP, @IIP, @ZIP, $TIP, $VIP, $SIP, $JIP, $HIP);

$TIP = $HOST;
$TIP =~ s/<(.*)>//g;
$VIP = $TIP;

if($FLAG == 5){
$TIP = $FORM{'sid'};
$TIP =~ s/\W/\\$&/g;
}else{
0853 ◆Reffi/bQ.c @reffi@報告人 ★
垢版 |
04/06/11 17:09ID:???
my @ippart = split(/\./, $TIP);
$JIP = $ippart[0];
if($TIP !~ /[a-zA-Z]/o){
$TIP =~ s/[0-9]+$//o;
$TIP = "^" . $TIP;
}elsif($JIP =~ /[x\-\.\d]{12}/o){
$TIP =~ s/([x\-\.\d]{5})([x\-\.\d]*)/$1\.\*/o;
}elsif($JIP =~ /\d{8}/o){
$TIP =~ s/(\d{3})(\d*)/$1\.\*/o;
}else{
if(@ippart < 5){
$TIP =~ s/\d+/\.\*/g;
}else{
if(($ippart[@ippart-6] =~ tr/\d/$&/) > 4){
$TIP = $ippart[@ippart-6];
$TIP =~ s/\d.*/\.\*/g;
}else{
$TIP = "";
}
$TIP .= "$ippart[@ippart-5].$ippart[@ippart-4]";
$TIP =~ s/\d+/\.\*/g;
$TIP .= ".$ippart[@ippart-3].$ippart[@ippart-2].$ippart[@ippart-1]";
}
}
$HIP = "$ippart[@ippart-3].$ippart[@ippart-2].$ippart[@ippart-1]";
}
0854 ◆Reffi/bQ.c @reffi@報告人 ★
垢版 |
04/06/11 17:09ID:???
# 書き込みログファイル
open(RIP,"<$ripfile");
@ZIP = <RIP>;
close(RIP);
# 書き込みホスト保存
open(WIP,">$ripfile");
#flock(WIP,2);
print WIP ("$HOST,$FORM{'sid'},$FORM{'key'}\n", @ZIP)[0..$SETTING{'BBS_THREAD_TATESUGI'}-1];
close(WIP);

}
0858動け動けウゴウゴ2ちゃんねる
垢版 |
04/06/12 14:58ID:8VflbAB0
あげとく
08597M. ◆dq7M./4Uw.
垢版 |
04/06/12 17:23ID:O0ZFAfUU
>856
なんか他の色々なところに使ってて、
すれたて規制には使ってないらしらし、
0860動け動けウゴウゴ2ちゃんねる
垢版 |
04/06/12 17:28ID:Cfpi0Eq0
112 名前:FOX ★[] 投稿日:04/06/12(土) 17:25 ID:???
bbs.cgi に入れることに成功した

んじゃ 実際に呼んでみよう。。。
0861動け動けウゴウゴ2ちゃんねる
垢版 |
04/07/07 18:38ID:o8lB/EVs
もう開発しないのか?
0862動け動けウゴウゴ2ちゃんねる
垢版 |
04/07/09 16:34ID:xo7Sweag
cgi以外に、通常ブラウザを制御できるプログラムはないのですか?
0863動け動けウゴウゴ2ちゃんねる
垢版 |
04/07/09 16:37ID:qeTzhCtY
>>862

どうぞこちらへ

WEBプログラミング@2ch掲示板
http://pc5.2ch.net/php/

サーバーサイドプログラミング関連の話題を扱っています。

Perl, PHP, Java, Ruby, C, Tcl といった言語処理系の話、
Apache, CGI, JSP/Servlet, ASP, ColdFusion といったアプリケーション実行環境の話、
Oracle, PostgreSQL, MySQL といったデータベースの話などをテーマにしています。

スレタイトルは言語がハッキリわかるようにしてください。(言語を特定する場合)
配布中止/配布元不明スクリプトが欲しい人はダウンロード板へ
JavaScript、VBScript等クライアントサイドの話題はWeb製作板へ
0864動け動けウゴウゴ2ちゃんねる
垢版 |
04/07/09 16:40ID:xo7Sweag
>>863
板違い失礼。
ありがとねんノ
0865
垢版 |
04/07/11 03:05ID:g55t+9Ba
test
0867本7
垢版 |
04/07/24 10:41ID:j1AbFFVk
Apacheモジュールのmod__bbsならあるけど2chで使うにはコアすぎるかな?
0868本7
垢版 |
04/07/24 11:51ID:j1AbFFVk
てか新bbs.cgiってもう完成したんだっけ?
0869動け動けウゴウゴ2ちゃんねる
垢版 |
04/08/07 16:35ID:+FhTqV9+
NGワードのことだけんども

"&r"を削除するんでなくて、"&amp;r"に変えるようにできないかな。
現状の抜け穴対策と、通常の投稿として"&r"がある時の救済策。

スレッドタイトルのNGワードも同様の処理にして欲しい。
現在の、"&"を全て削除する方法では誤爆が多すぎる。
0872動け動けウゴウゴ2ちゃんねる
垢版 |
04/08/08 20:56ID:GsL2iQKg
一応書いとくと、bbs.cgiにもNGワードがございまして、
特定の文字列があると投稿できなかったり、或いは
別の文字列に変えられたり、削除されたりするのですね。
0881
垢版 |
04/09/17 13:41:16ID:I3k6ObmZ

0882Giraffes ◆uHAyZd8FGA
垢版 |
04/09/23 21:42:07ID:tCfWkHg0
bbs.cgiが処理するvalue値、形式は何なんでしょか?
<input type=hidden name=time value=1095940962>

初歩的な質問ですみませんが、どなたか <(_)>
0884882
垢版 |
04/09/24 08:49:47ID:QH62aZR5
ですね (_)m
0885
垢版 |
04/10/13 14:31:35ID:topL7/m/
.
0897動け動けウゴウゴ2ちゃんねる
垢版 |
04/11/05 20:50:15ID:J43AHOGt
とりあえずさ、どう考えても今のやつに手を加えるのが現実的ではないだろうか
誰か有能な人を雇用してよ。
俺とか。
0900root▲ ★
垢版 |
04/11/06 09:52:53ID:???
不動楽さんが手を入れて、明らかに板飛びが減ったですね。
0901通りすがりのUNIX屋
垢版 |
04/11/07 10:01:10ID:mqnEPazJ
共有メモリ使ってはいかがですか?
共有メモリ上にスレッド毎のメッセージ数入れておいて、共有メモリを更新する数msecだけ
SYSVセマフォ(若しくはPOSIXのセマフォ)で排他。
1000を多少越えても良いのだから参照に排他は不要。
SYSV共有メモリで足りなければmmapの共有メモリで。

処理フロー
1.規制確認
2.レス数確認
3.共有メモリロック
4.レス数インクリメント
5.共有メモリロック開放
6.datにアペンド。
0902▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo
垢版 |
04/11/08 16:45:33ID:WD2hE2cd
mod_cgidso入れさせてテストさせて見たいといってみるテスト
せっかく5.3Rもでたことですし、exで実験!と振ってみるテスト

>>900
つーことは今のbb.cgiソース管理者は不動楽さんということでFA?

>>901
mmapはかなりコストを食うということで却下された経緯があったはず
0903root▲ ★
垢版 |
04/11/09 02:39:27ID:???
>>902
管理者というか、いじっている人の一人かと。
0904▲:/usr/local/bin/ch2 -o i686 ◆P8fXJj6wwo
垢版 |
04/11/09 09:22:11ID:hTgm05bT
>>903
ふむ、では今いじれるのはrootさんを除くと(一部はその気になればいじれるため)

ひ(りゃ(ほとんど触っていなさそうだけど)
見習い
不動楽

あとだれがいましたかね。
0907 ◆cZfSunOs.U
垢版 |
04/11/15 22:41:54ID:ZCkDk6ko
read.cgi はともかく bbs.cgi で mod_cgidso を使うとなると,
普通の実行可能バイナリじゃなくて共有オブジェクトにしなきゃいけないとか,
自前でリソース解放してくれないとどんどんリークしていっちゃうとかで,
perlcc で直接バイナリ作るんじゃなくて,生成された C コードを
手作業で直さなきゃならないんでしょうけど......

まぁ bbs.cgi に関しては,fork() させないようにするなら
mod_perl の方が現実的かなとは思います.

あとは,suExec の代替措置も必要なんでしょうけど,
perchild MPM よりも安定して動くと言われているのがこれ.
    Metux MPM http://nibiru.borg.metux.de:7000/wiki.mpm/

**********************************************************************

個人的に bbs.cgi 関連で気になっているのは,まずは ftp のリンク URL が
おかしくなること (ex. ftp://core.ring.gr.jp/pub/ ).これは ime.nu で
ftp リンクを扱えるようになっていなければ,ime.nu を入れず直リンに
した方がいいのかも知れませんけど.

あとは,NAME/MAIL の Cookie の問題ですね.設定がサーバサイド,
読み出しがクライアントサイドという不整合のため,Mozilla 等では
文字化けしてしまうと.現状では Set-Cookie ヘッダで設定していますが,
これを JavaScript の方で設定すればいいのではないかな,と.
とはいえ,bbs.cgi 出力に Cookie 設定用 JavaScript コードを入れると,
" や \ を \ でエスケープさせる必要がありますが,Shift JIS だと
漢字等の2バイト目が \ になることもあるんで,この判定をきっちりやるのも
結構大変か......むしろ bbs.cgi 出力では行わず,投稿フォーム側の
onsubmit() でこの処理をやらせた方が安全ですかね.
0908 ◆cZfSunOs.U
垢版 |
04/11/15 22:43:05ID:ZCkDk6ko
その場合の各板トップ及び read.cgi 出力の JavaScript コード変更案.
----------------------------------------------------------------------
onload = function(e) {
    var N = getCookie("NAME"), M = getCookie("MAIL"), i;
    with (document)
        for (i = 0; i < forms.length; i++)
            if (forms[i].FROM && forms[i].mail) {
                forms[i].FROM.value = N;
                forms[i].mail.value = M;
                if (forms[i].addEventListener)
                    forms[i].addEventListener("submit", setCookie, false);
                else
                    forms[i].onsubmit = setCookie;
            }
};

if (!Date.prototype.toUTCString)
    Date.prototype.toUTCString = Date.prototype.toGMTString;

function setCookie(e) {
    var exp = new Date();
    exp.setMonth(exp.getMonth() + 1);
    document.cookie = "NAME=" + escape(this.FROM.value) + "; path=/; expires=" + exp.toUTCString();
    document.cookie = "MAIL=" + escape(this.mail.value) + "; path=/; expires=" + exp.toUTCString();
}

function getCookie(key, tmp1, tmp2, xx1, xx2, xx3, len) {
    tmp1 = " " + document.cookie + ";";
    xx1 = xx2 = 0;
    len = tmp1.length;
    while (xx1 < len) {
        xx2 = tmp1.indexOf(";", xx1);
        tmp2 = tmp1.substring(xx1 + 1, xx2);
        xx3 = tmp2.indexOf("=");
        if (tmp2.substring(0, xx3) == key)
            return unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1));
        xx1 = xx2 + 1;
    }
    return "";
}
0910動け動けウゴウゴ2ちゃんねる
垢版 |
04/11/22 23:29:27ID:lGHEU7j1
もう今はスクリプト配布してないんだっけ?
4.2ぐらいのころのは持ってるよ。
0911動け動けウゴウゴ2ちゃんねる
垢版 |
04/11/24 13:24:29ID:ZoS47VUx
MySQL使えないんでしょうか?
ファイルシステムでこの規模なんて自分では考えられないです。
DATを返すインターフェイス作っておけば問題ないと思うのですが・・・。
0915動け動けウゴウゴ2ちゃんねる
垢版 |
04/11/24 21:22:09ID:oKqt30OR
>>914
DMDM と MDMD の MD5 を算出して、DB(MySQL) と照らし合わせて合致すれば桶だと思うので、
その部分以外は使い回しかと思われんこん。
0917動け動けウゴウゴ2ちゃんねる
垢版 |
04/11/28 23:37:38ID:LLgV0enQ
>>911
過去ログ検索とかではDBは有効だけど、ライブスレッドなら
ファイルのが負荷少ないしベストな選択のように思うけど、
どうなんだろう。
レス数が900を超えています。1000を超えると表示できなくなるよ。

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