X



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

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

■ このスレッドは過去ログ倉庫に格納されています
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/
0452仕事人 ★
垢版 |
04/02/29 23:05ID:???
>>450
1,000 取ってみてくだせー
0453 ◆Nm5090363w
垢版 |
04/02/29 23:05ID:ESMdxJrR
>>447 を見て気づいたこと。
・「緊急緊急緊急!!」が書き込み終わった後になる
・1001ストッパー書き込み時のオープンモードが読み込みモード
0455動け動けウゴウゴ2ちゃんねる
垢版 |
04/02/29 23:07ID:JvRnpXfA
ニュー速1000きっちりで終わったよ
0457仕事人 ★
垢版 |
04/02/29 23:08ID:???
>>453
ども 、
直してみた


if($lognum > 1010) # ここはこないと予想
{
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!");
}
if($lognum > 999)
{
open(OUT,">>$dattemp");
print OUT "1001<><>Over 1000 Thread<>このスレッドは1000を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>\n";
close(OUT);
chmod(0555, $dattemp);
}
else
{
#パーミッション調整
umask(0);
chmod(0666, $dattemp);
}
0458仕事人 ★
垢版 |
04/02/29 23:09ID:???
>>456
微妙
0459未承諾広告※ ◆TWARamEjuA
垢版 |
04/02/29 23:10ID:47xPabMI
>>447
open(OUT,"<$dattemp");
print OUT "1001<><>Over 1000 Thread<>この

鰓がでるよね?
もっと餅付いてくだちい。。。
0460動け動けウゴウゴ2ちゃんねる
垢版 |
04/02/29 23:22ID:fKbOd8s3
chmod(0666, $dattemp);がchmod(0555, $dattemp);よりあとに実行されるとは考えにくいけど、
念のため、
if($lognum > 1010)
{
chmod(0555, $dattemp);
DispError("ERROR!", "ERROR〜");
}
としてもいいかも。
0461動け動けウゴウゴ2ちゃんねる
垢版 |
04/02/29 23:24ID:Jf+5mxoZ
ウスターの一部しか開示されないので
処理の流れがわからない。。。

あと、別のところで問題がある場合も
思い込んでる場所のみを開示&思考なので発見が遅れる。。。

な予感('-')
0464 ◆qb.x27/m96
垢版 |
04/02/29 23:26ID:W0afuNnL
if (open(OUT, "+>>$DATAFILE"))
{
my @logdat = <OUT>;
my $lognum = @logdat;
----

この部分ですけど実際にファイルをopenしているのはどこなんだろう、、
そして$outdat には何が入っているのだろう、、

こんな風に変更したら、どですか。>>330

と思ったらまたやり直し、、、
0470 ◆Nm5090363w
垢版 |
04/02/29 23:30ID:ESMdxJrR
>>468
あー、1001ストッパー書き込み時に++$lognum;が必要ですね……。
0472仕事人 ★
垢版 |
04/02/29 23:33ID:???
>>470
おおっ

入れてみます
0473仕事人 ★
垢版 |
04/02/29 23:34ID:???
open(RDAT,"<$dattemp");
@logdat=<RDAT>;#ログを配列に読み込む
close(RDAT);

#ログのカキコ数を取得
$lognum = @logdat;
if($lognum > 1010)
{
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!");
}
if($lognum > 999)
{
open(OUT,">>$dattemp");
print OUT "1001<><>Over 1000 Thread<>このスレッドは1000を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>\n";
close(OUT);
chmod(0555, $dattemp);
$lognum++;
}
else
{
#パーミッション調整
umask(0);
chmod(0666, $dattemp);
}
0475仕事人 ★
垢版 |
04/02/29 23:35ID:???
$SUBLINE = $subject . " (" . $lognum . ")\n";

$SUBLINE がグローバルになっていて
あとで subject.txt を更新するのに使うと予想。
0476仕事人 ★
垢版 |
04/02/29 23:35ID:???
>>474
しらない
0477動け動けウゴウゴ2ちゃんねる
垢版 |
04/02/29 23:35ID:tbK47Xxd
仕事人ほかいろいろな人お疲れさんです
0478仕事人 ★
垢版 |
04/02/29 23:37ID:???
配ってみる
0480仕事人 ★
垢版 |
04/02/29 23:48ID:???
全部にくばった
0493▲ 某ソレ511
垢版 |
04/02/29 23:58ID:3Ckm5k37
たぶんバイナリ化せずにソースを入れてるんじゃないかと。
バイナリ化するのはroot ★さんの仕事。
0495動け動けウゴウゴ2ちゃんねる
垢版 |
04/03/01 00:00ID:vlCZckrZ
悪いことは言わん。
1000チェックだけでも、別ロックファイルとして*.dat以外にしないとchmodヘルになると思う。
ファイルI/Oを嫌って1ファイルでゴニョゴニョしているほうがパフォーマンスが悪くなると思う。
0496 ◆qb.x27/m96
垢版 |
04/03/01 00:03ID:OvElWHnn
ERROR!
ERROR:このスレッドには書けません!

---
>>491のスレは1000のチェックではなくてパーミッションチェックで弾かれている予感。
あとは高負荷がかかった時でも大丈夫ならOKなのかな、、
0497 ◆qb.x27/m96
垢版 |
04/03/01 00:08ID:OvElWHnn
  ↑
1000行ってしまった後にあらため書き込もうとした時の話です。
なんかあまり役に立てなかった悪寒 _| ̄|○
0500 ◆Nm5090363w
垢版 |
04/03/01 00:17ID:GH4N2w1a
>>498
subject.txtではレス数が1002になっている……。
ミナカッタコトニシヨウ
0501動け動けウゴウゴ2ちゃんねる
垢版 |
04/03/01 00:19ID:KZO/IjMi
age
0502 ◆LBZUBURIYM
垢版 |
04/03/01 00:20ID:JrtqeRJZ
1000越え判定の時の$lognumに直接1001を叩き込んじゃだめですか?>判るひと
0504 ◆Nm5090363w
垢版 |
04/03/01 00:23ID:GH4N2w1a
if($lognum > 999)
{
if (open(OUT,">>$dattemp")) {
print OUT "1001<><>Over 1000 Thread<>このスレッドは1000を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>\n";
close(OUT);
$lognum++;
}
chmod(0555, $dattemp);
}
これでどうでしょ。

>>502
レス数がきっかり1000で止まる保証がないので、直接1001をいれるとマズいです。
0506仕事人 ★
垢版 |
04/03/01 00:36ID:???
>>504

そね

#ログのカキコ数を取得
$lognum = @logdat;
if($lognum > 1010)
{
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!");
}
if($lognum > 999)
{
if(open(OUT,">>$dattemp"))
{
print OUT "1001<><>Over 1000 Thread<>このスレッドは1000を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>\n";
close(OUT);
$lognum++;
}
chmod(0555, $dattemp);
}
else
{
#パーミッション調整
umask(0);
chmod(0666, $dattemp);
}

0507仕事人 ★
垢版 |
04/03/01 00:44ID:???
まとめ(メモメモ)

処理の流れは

1) とにかく色々チェック。
2) dat に追記。
3) MakeWorkFile で html/xxxxxx.html を作る
  この時に 1,000 超えを判定、 1,001 を書き 0555 にする。
  この関数内で $SUBLINE = $subject . " (" . $lognum . ")\n";
  を作りあとで subject.txt の書き換えに使う。
4) subjext.txt 書き換え
5) ふぅ終了。
0508仕事人 ★
垢版 |
04/03/01 00:46ID:???
問題は 2) で追記したあと 0666 にしていたので
せっかく 0555 で書き込めなくしたのに書き込めていた。

あと bbs.cgi の最初のほうで
unless( -w $DATAFILE){
DispError("ERROR!","ERROR:このスレッドには書き込めません。");
}
を行い、なるべく負荷をさげようと。
0509仕事人 ★
垢版 |
04/03/01 00:53ID:???
大幅なオーバーランはなくなったか → たぶん
前よりも処理は軽くなったか? → たぶん

要観察ですなぁ
0510動け動けウゴウゴ2ちゃんねる
垢版 |
04/03/01 01:18ID:BnaSe/vj
なんか、あまり変わってない気がするのは気のせいに違いない。

#dat追記部分
if (open(OUT, ">>$DATAFILE"))
print OUT "$outdat\n";
close(OUT);
} else {
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!");
}

#ログのカキコ数を取得
if($lognum > 1010)
{
chmod(0555, $dattemp);#念のため
}
elsif($lognum > 999)
{
if(open(OUT,">>$dattemp"))
{
print OUT "1001<><>Over 1000 Thread<>このスレッドは1000を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>\n";
close(OUT);
$lognum++;
}
chmod(0555, $dattemp);
}
else
{
#パーミッション調整
umask(0);
chmod(0666, $dattemp);
}

にしたほうがいいかも。
0511動け動けウゴウゴ2ちゃんねる
垢版 |
04/03/01 01:28ID:xl24PgZ6
最大書き込み数がてんでばらばらなのはなんとか
ならないのか?
全レス取得できたのかどうか,すっきりしないんだが。
0513動け動けウゴウゴ2ちゃんねる
垢版 |
04/03/01 01:34ID:vlCZckrZ
>>484
>オープンソースは荒らしに利用されるから
誤解されるようなことを振りまかないでー。
ApacheやFreeBSDはオープンソースですが荒らしに利用されていますか?
0515仕事人 ★
垢版 |
04/03/01 02:18ID:???
こうしたらどうなる?

open(RDAT,"<$dattemp");
@logdat=<RDAT>;#ログを配列に読み込む
close(RDAT);

#ログのカキコ数を取得
$lognum = @logdat;
if($lognum > 1010)
{
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!");
}
if($lognum > 999)
{
if(open(OUT,">>$dattemp"))
{
print OUT "1001<><>Over 1000 Thread<>このスレッドは1000を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>\n";
close(OUT);
#$lognum++;
open(RDAT,"<$dattemp");
@logdat=<RDAT>;#ログを配列に読み込む
close(RDAT);
$lognum = @logdat;
}
chmod(0555, $dattemp);
}
else
{
#パーミッション調整
umask(0);
chmod(0666, $dattemp);
}
0516 ◆Nm5090363w
垢版 |
04/03/01 02:43ID:GH4N2w1a
>>515
レス数のカウントがより確実になって、ちょっと重くなる?
0517動け動けウゴウゴ2ちゃんねる
垢版 |
04/03/01 09:41ID:33tLVDgR
各種cgiテスト専用の板を作ったほうがよさげな悪寒。
0518▲ 某ソレ511
垢版 |
04/03/01 09:45ID:N+YBsNkv
>>517
いちおう運用情報(金)がそれにあたってます。
でも、1000レスとかそういった実験にはむかんとですよ。
0521動け動けウゴウゴ2ちゃんねる
垢版 |
04/03/01 10:36ID:Hwg46zlr
if($lognum > 1010)
{
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!");
}
if($lognum > 999)
{
if(open(OUT,">>$dattemp"))
{

ここを

if($lognum > 999)
{
if($lognum > 1010)
{
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!");
}
else
{
if(open(OUT,">>$dattemp"))

とかだめかな。
0522GlobalService ★
垢版 |
04/03/01 10:48ID:???
>>521
if($lognum > 999)
{
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!") if($lognum > 1010);
if(open(OUT,">>$dattemp"))
{

・・・書いてみたかっただけなの
0523root ★
垢版 |
04/03/01 11:16ID:???
昨日は本業超多忙につき、>>360 から未処理。
急ぎで何かしなきゃいけないことある?live8/live9のbbs.cgiの更新とか。

12:00ごろまた来るので、誰かレス番で教えてちょ。
# 午後は少し時間とれる見込み。
05242chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2CHTUBOC5A
垢版 |
04/03/01 11:31ID:dwh0EDMA
ERROR!
ERROR:このスレッドには書き込めません。緊急緊急緊急!!

ホスト*

名前: 2chtubo愛用者〜ヘ(゚д゚ヘ))))))〜61 ◆2CHTUBOC5A
E-mail:
内容:
きねんかきこ。

こちらでリロードしてください。 GO!
分からないことがあったら2ちゃんねるガイドへ。。。
-------------------------------------------------------
ちゃんとでてるね。。。
0527動け動けウゴウゴ2ちゃんねる
垢版 |
04/03/01 12:02ID:+8ilk7HP
警察板( http://society.2ch.net/police/ )が困った状態なので、お知らせしておきます。
 subject.txt上は1011なのに、実際は2000オーバースレ有り
 (IEで)各スレッドURLでは、1001ストッパーまで表示、書き込み欄なし
 (〃)板トップでは、実際の最終レスまで表示、書き込み欄あり
 (専用ブラウザで)スレ一覧のレス数がずれるものの、書き込み可能
http://society.2ch.net/test/read.cgi/police/1058340116/2917 など

ちなみに、レス数1000近くのスレをageて、次々にお祭りを始めているようです。
http://society.2ch.net/test/read.cgi/police/1040783990/962
他板で宣伝も見つけました。
http://live8.2ch.net/test/read.cgi/livenhk/1078104752/190
0528動け動けウゴウゴ2ちゃんねる
垢版 |
04/03/01 12:07ID:2ktpVplm
つまり >>519 かつ 999 判定より 1010 判定が前にあるせいで
書き込まれてから緊急緊急が出てるわけだな

>>523
急ぎで society の bbs.cgi を元に戻してくださいw
0530root ★
垢版 |
04/03/01 12:09ID:???
>>528
society(=oyster17)って、私ログインできるのかな。
0532動け動けウゴウゴ2ちゃんねる
垢版 |
04/03/01 12:12ID:2ktpVplm
でもよく読むと 515 のとおりなら 1010 判定のあとに 999 判定も
通ってるはずだから、止まるんじゃないのかな?
&DispError って、中で exit してるのかな
0534仕事人 ★
垢版 |
04/03/01 12:57ID:???
変更してみる

#ログのカキコ数を取得
$lognum = @logdat;
if($lognum > 1010)#念のため暴走ストッパー
{
chmod(0555, $dattemp);
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!");
}
if($lognum > 999)
{
if(open(OUT,">>$dattemp"))
{
print OUT "1001<><>Over 1000 Thread<>このスレッドは1000を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>\n";
close(OUT);
$lognum++;
}
chmod(0555, $dattemp);
}
else
{
#パーミッション調整
umask(0);
chmod(0666, $dattemp);
}
0535動け動けウゴウゴ2ちゃんねる
垢版 |
04/03/01 13:15ID:ZVH4RhiM
close(OUT);
chmod(0555, $dattemp);
DispError("ERROR!", "ERROR:このスレッドには書き込めません。緊急緊急緊急!!");
のほうがいいかも
0541仕事人 ★
垢版 |
04/03/01 17:13ID:???
んで
現状は 1,000行ったスレッドは
dat = 1,001 まである
index.html = 1,000 までしか出ない(以前と使用違うけど、がまんの方向で)
subject.txt = 1,001 まである

今回の改修の目的は
2,000 とか 3,000 まで書き込めてしまうのを 1,000 近辺で止める。

なのでどうなるか観察しよう。
0542GlobalService ★
垢版 |
04/03/01 17:19ID:???
>>541
>2,000 とか 3,000 まで書き込めてしまうのを 1,000 近辺で止める。

何が何でも1,000ぴったりで止めるのか
1050ぐらいまで放置するか決めよう
0543 ◆Nm5090363w
垢版 |
04/03/01 17:21ID:DWVIoriX
>>542
1,000 「近辺」というぐらいだから1050でもアリじゃないかな……。
0544▲ 某ソレ511
垢版 |
04/03/01 17:22ID:N+YBsNkv
ちょっとくらいはオーバーしてもいいという方針だったと思うのだが、、
過去ログorソースコード読んだ?
0545root ★
垢版 |
04/03/01 17:28ID:???
1000を書いたbbs.cgiさんが、責任持って1000ストッパーを書いて、
chmod/fchmodしてから終わる、というのはどうなんでしょう。
0546GlobalService ★
垢版 |
04/03/01 17:30ID:???
>543
それなら一週間何も弄らず観察しよう。
0547仕事人 ★
垢版 |
04/03/01 17:31ID:???
それに挑戦したのが >>255 あたりからだったりして、
0548 ◆Nm5090363w
垢版 |
04/03/01 17:34ID:DWVIoriX
>>545
それだと「999を書いたbbs.cgiさん×2+1001以降を書くbbs.cgiさん」な場合に
ストッパーが効かなくなる気がするです。
0549root ★
垢版 |
04/03/01 17:36ID:???
>>548
そっか。当然そうだよね。

なんだか、某DJBに「フーン」って笑われそうな議論だよなぁ。ここでのあがきって。
もちろん、私も含めて。
0550仕事人 ★
垢版 |
04/03/01 17:39ID:???
>>546
何も起らなきゃ永遠に観察。
■ このスレッドは過去ログ倉庫に格納されています

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