bbs.cgi再開発プロジェクト 3
レス数が900を超えています。1000を超えると表示できなくなるよ。
「歯みがいたか?」
↓
「宿題やったか?」
↓
「風呂はいったか?」
↓
「妹の様子はどうだい?」
↓
「肛門の調子はどうよ?」
でいいような気がしますが。 >>825
少しくらい表示してもイイが、ひろゆきの嫌いな広告スクリプトにも情報を提供することになるわけで。
自動じゃんぷきれー、
っつのは前からさんざんがいしゅつきしゅつだった希ガス元素。 本題とは逸れるが自動ジャンプなんて要らないと思う。
-------------------------
書き込みが終了しました。
・○○板(リンク)
・にちゃんねる(リンク)
-------------------------
これくらいで良いっしょ。
>>825
2ちゃんブラウザーには効かないぜ
書き込みウィンドウが固まって本体まで固まる奴があるからイライラするだけさ >805
そこそこ使えるL4 ロードバランサって300万円ぐらいするよね、Alteonとか
F5とかServer Ironとか。
それを海の向こうに設置して運営するコストは馬鹿にならんと思う。
このての保守契約は24h365dayにすると極端に高くなるから 負荷分散機のパフォーマンス調査を行っていました。
むちゃくちゃ返信遅れていますし、ややスレ違いな場所に返信してごめんなさい。
・・・そろそろスレたてた方がいいのかな・・。
>835
そうなんですよね。高すぎるんですよ。
ただいま、負荷分散機のパフォーマンス調査を行っているんですが、
やたらと古いデータしかないんですよね・・・。
ttp://www.veritest.com/clients/reports/f5/layer4_layer7_comparison.pdf
ttp://www.linuxvirtualserver.org/Joseph.Mack/performance/single_realserver_performance.html
やっぱりソフトウェアベースでは無理かなぁ。
となると一度実験してみないとだめかも、どこかでこっそりとやってこよう。
ttp://slashdot.jp/articles/04/05/17/0833224.shtml?topic=2 こっちにも関りがあることなのでコピペ。
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
追加
>>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 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さんはいないのかな。 超カメレスで悪いが、随分前にあった「IO::File使え」という意見。
IO::FileをuseするとIO::SeekableだのFile::Specだの余計なモジュールを
中で読みまくるので、激しく重くなるよ。
open my $fh, '<', './unko.txt';
...
close $fh;
オブジェクト指向でファイル操作するのは諦めて、こうやった方が軽い。 それ以前に、mod_perlしていなけりゃ起動コストがアホみたいにかかる >>843
mod_perlはhttpdプロセス一つごとにcgiが起動するからメモリ食う。
FastCGIの方がいいよ。 >>844
read.cgi以外の*.cgiを処理するmod_perl有効のhttpdと。
*.gif|*.htmlなどの固定ファイル専用のSTATICビルドしたhttpd。
その二つを別ポートもしくはaliasした別IPで立ち上げて。
poundで分岐するってのはどうだ? おそらく>>844は理解できていないか失敗した厨房
Apache拡張ガイドでも嫁
>>846
2chにそのような運用を期待するのは浅はかだと思わんかね そもそも、httpd数とプロセス(コネクション)数は1対1にする必要ないんだけどね。
httpdが数百個も動いてメモリが気になるなら、マルチスレッドで動かせばいいだけでしょ。
apache2を使っているんだから。 >>848
MPM workerで安定動作しているところってどこか知ってる?
ヤフーとかgoogleとかはどうなんだろうなぁ。 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{ 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]";
} # 書き込みログファイル
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);
} RIPファイル内緒って。。。(汗
普通に知られてると思うんだけどな。。。(汗 >>853であれこれやってるものが>>854のどこにも使われてないように
見えるんだが >856
なんか他の色々なところに使ってて、
すれたて規制には使ってないらしらし、 112 名前:FOX ★[] 投稿日:04/06/12(土) 17:25 ID:???
bbs.cgi に入れることに成功した
んじゃ 実際に呼んでみよう。。。 cgi以外に、通常ブラウザを制御できるプログラムはないのですか?
>>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製作板へ
で、質雑スレで bbs.cgi が云々と宣ってた香具師はどうした?(哀) Apacheモジュールのmod__bbsならあるけど2chで使うにはコアすぎるかな? NGワードのことだけんども
"&r"を削除するんでなくて、"&r"に変えるようにできないかな。
現状の抜け穴対策と、通常の投稿として"&r"がある時の救済策。
スレッドタイトルのNGワードも同様の処理にして欲しい。
現在の、"&"を全て削除する方法では誤爆が多すぎる。 一応書いとくと、bbs.cgiにもNGワードがございまして、
特定の文字列があると投稿できなかったり、或いは
別の文字列に変えられたり、削除されたりするのですね。 &rが削除されるのは、名前欄だけじゃないのか?
ここに→&r←来た 要望はここでいいのかな?
https://で始まるURLもリンク形式にして欲しいんだけど bbs.cgiがdatに記録するのは素のURLで
リンクにしてるのはread.cgi(or専用ブラウザ)ですね bbs.cgiが処理するvalue値、形式は何なんでしょか?
<input type=hidden name=time value=1095940962>
初歩的な質問ですみませんが、どなたか <(_)> スレ一覧生成するときに、1行1スレにして、可読性を高めることはできますか? ソースきたないなぁ>>852-854
これはメモリをいっぱい使う典型的な例じゃない? Perlわからんのに下手なことやる★がいるからな。
2chにワケワカランおまけ機能つける奴とか それで負荷がどうのこうの言って制限とかやめてよ
先にやることあるでしょ 思ったんだがPerl使うより
サーバサイドJAVA使ったほうが比較処理早いと思うんだが・・・ とりあえずさ、どう考えても今のやつに手を加えるのが現実的ではないだろうか
誰か有能な人を雇用してよ。
俺とか。 不動楽さんが手を入れて、明らかに板飛びが減ったですね。 共有メモリ使ってはいかがですか?
共有メモリ上にスレッド毎のメッセージ数入れておいて、共有メモリを更新する数msecだけ
SYSVセマフォ(若しくはPOSIXのセマフォ)で排他。
1000を多少越えても良いのだから参照に排他は不要。
SYSV共有メモリで足りなければmmapの共有メモリで。
処理フロー
1.規制確認
2.レス数確認
3.共有メモリロック
4.レス数インクリメント
5.共有メモリロック開放
6.datにアペンド。
mod_cgidso入れさせてテストさせて見たいといってみるテスト
せっかく5.3Rもでたことですし、exで実験!と振ってみるテスト
>>900
つーことは今のbb.cgiソース管理者は不動楽さんということでFA?
>>901
mmapはかなりコストを食うということで却下された経緯があったはず >>902
管理者というか、いじっている人の一人かと。 >>903
ふむ、では今いじれるのはrootさんを除くと(一部はその気になればいじれるため)
ひ(りゃ(ほとんど触っていなさそうだけど)
見習い
不動楽
あとだれがいましたかね。 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() でこの処理をやらせた方が安全ですかね. その場合の各板トップ及び 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 "";
} もう今はスクリプト配布してないんだっけ?
4.2ぐらいのころのは持ってるよ。 MySQL使えないんでしょうか?
ファイルシステムでこの規模なんて自分では考えられないです。
DATを返すインターフェイス作っておけば問題ないと思うのですが・・・。 DBとの連携ってどこらへんで×だったんだっけ。
過去ログ引っ張り出すのもまんどくせ。 別に技術的な理由で×というのは無かったような。
強いて言えばめんどくさいってだけ。 >>914
DMDM と MDMD の MD5 を算出して、DB(MySQL) と照らし合わせて合致すれば桶だと思うので、
その部分以外は使い回しかと思われんこん。 >>915
そもそもMD5があやしい疑惑があるんだが・・・・ >>911
過去ログ検索とかではDBは有効だけど、ライブスレッドなら
ファイルのが負荷少ないしベストな選択のように思うけど、
どうなんだろう。 負荷ってどうなるのかなぁ・・・
PHPで試しに作ってみる。 >917
ファイルシステムにするとキューだのロックだのを同期する必要がある。
MySQLだと、そのあたりはデータベースに任せられる。
また、MySQLをバックエンドにして、閲覧系を複数にして負荷分散するのが非常に楽になる。 そうか書き込みのことを忘れてた・・・スマソ
MySQL速いらしいいいかもね。 ひ(ryがいぢれないと採用してもらえなかった希ガス >>920
というかbbs.cgiはそもそも書き込み用途のはずではw datをDBにするとread.cgiも変えざる得ないから、読み書き両方を考える必要があるのか・・・ そーゆーんじゃなくってさ、
bbs.cgi の改良でだいぶよくなる気がする。
だって何あのソース??
おっきく仕様変えなくても。。 >923
Perl DBIでインターフェースを作っとけば、仮にCで書きなおしたりしてもインターフェース部分だけ変えればよいと。
んでDBはDBで切り離してチューニングが出来ると。
閲覧系のキャッシュ同期とかがけっこうノウハウあるらしいので高負荷サイトはそれなりに難しいらしいけど。 関連ページをクリックして、Pingを発射したとき
どう足掻いてもスレッドのURLの末尾の/が相手先に送れないのですが
この問題もこちらでよろしいでしょうか?
2ちゃんねるpingβのスレがあるといいのですが、見あたらないので・・・ レス数が900を超えています。1000を超えると表示できなくなるよ。