X



トップページ運用情報
472コメント179KB
bbs.cgi再開発プロジェクト6
■ このスレッドは過去ログ倉庫に格納されています
0001 ◆CPUinDOop.
垢版 |
2007/04/11(水) 21:48:35ID:lo7VtG1U0
peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。

【開発環境の工事現場】
また挑戦。@2ch掲示板  http://dso.2ch.net/myanmar/
また挑戦2。@2ch掲示板 http://dso.2ch.net/yangon/

関連スレなどは >>2-5 くらい
0182 株価【851】 △△ ◆cZfSunOs.U
垢版 |
2007/12/17(月) 10:40:44ID:LySqlESJ0
・ qb5 で詰まる原因を探りやすくすべくログを取るようにする
・ いつぞやのように規制リスト配布がバグっても 500 エラーにならないようにする
>>176 の後半

あたりをやってみようかと......
0184動け動けウゴウゴ2ちゃんねる
垢版 |
2007/12/17(月) 19:38:10ID:6jOM937c0
" ではなく
&quot と書いても " に変換されてるみたいだけど正常なのかな?

全角 → 半角
quot → quot
&quot → "
" → "
0190 株価【850】 △△ ◆cZfSunOs.U
垢版 |
2007/12/17(月) 22:07:29ID:LySqlESJ0
dat 中(というか HTML ドキュメント中)の &quot が
ブラウザでどう表示されるか,という話ならブラウザ依存でしょうね.


で,とりあえず今のところログに残ってるのは

[2007-12-17 16:26:18]   &foxSetHost($GB)                ;       # ホストの判定: took 23s
[2007-12-17 17:22:31]   &foxSetHost($GB)                ;       # ホストの判定: took 22s
[2007-12-17 18:32:17]   &foxSetHost($GB)                ;       # ホストの判定: took 23s

てな感じですが(DNS 問い合わせで詰まってる?),
これはいつも qb5 で詰まる時のパターンなんですかね?
ともあれ,bbs.cgi の実行時間が長くなった時に
ログに記録する仕組みは動くことが確認できたので,
さらにもうしばらく観察......
0191root▲▲ ★
垢版 |
2007/12/18(火) 01:02:20ID:???0?PLT(80222)
>>190
qb5 ですが、なんか、qb6 で動くものと動機しているっぽい気がしました。
アクセスログと見比べてみるといいかも。
0192 株価【880】 △△ ◆cZfSunOs.U
垢版 |
2007/12/18(火) 02:29:24ID:Ifuf27KA0
>>191 なるほど.っていうか >>190 のログと 500 エラーのタイミングも一致してませんね.
これは,bbs.cgi 実行に入る前の SpeedyCGI そのものの実行段階で詰まってるってことかな......
0193root▲▲ ★
垢版 |
2007/12/18(火) 02:40:43ID:???0?PLT(80222)
あと、ほとんどの場合は 500 エラーが出ても書けているんですよね、、、。
つまり、少なくとも dat に追記するところまでは処理が動いていると。
0194 株価【858】 △△ ◆cZfSunOs.U
垢版 |
2007/12/18(火) 05:07:09ID:Ifuf27KA0
当てずっぽうで書きますが......現状で 512 になってる kern.maxusers を
さらに増やしてみてはどうでしょう,とか......
0195FOX ★
垢版 |
2007/12/18(火) 05:42:52ID:???0
酔っ払いの私にはわかんですー
0197root▲▲ ★
垢版 |
2007/12/18(火) 10:50:23ID:???0?PLT(80222)
>>194
資源系ですか。

何か、資源系で足りないものがあるような、というのには、
私も同意。
0198 株価【858】 △△ ◆cZfSunOs.U
垢版 |
2007/12/18(火) 11:52:56ID:Ifuf27KA0
あくまで推測ですが,speedy <-> speedy_backend 間の通信(Unix ドメインソケット経由)が
qb5 / qb6 の環境ではエラーになりやすいということかも知れないのではないかなぁ,と.
SpeedyCGI のソースを見てみると
----------------------------------------------------------------------
http://speedycgi.cvs.sourceforge.net/speedycgi/2.x/src/speedy_frontend.c?view=markup
  388 /* Create sockets in preparation for connect.  This may take a while,
  389 * esp on FreeBSD, when it's out of sockets.
  390 */
  391 if (!sockets_open++)
  392     speedy_ipc_connect_prepare(socks);

http://speedycgi.cvs.sourceforge.net/speedycgi/2.x/src/speedy_ipc.c?view=markup
   22 #ifdef ENOBUFS
   23 #   define NO_BUFSPC(e) ((e) == ENOBUFS || (e) == ENOMEM)
   24 #else
   25 #   define NO_BUFSPC(e) ((e) == ENOMEM)
   26 #endif

   48 static int make_sock(void) {
   49     int i, fd;
   50
   51     for (i = 0; i < 300; ++i) {
   52 fd = socket(AF_UNIX, SOCK_STREAM, 0);
   53 if (fd != -1)
   54     return fd;
   55 else if (NO_BUFSPC(errno)) {
   56     sleep(1);
   57     speedy_util_time_invalidate();
   58 }
   59 else
   60     break;
   61     }
   62     speedy_util_die("cannot create socket");
   63     return -1;
   64 }

  180 void speedy_ipc_connect_prepare(int socks[NUMFDS]) {
  181     int i;
  182     for (i = 0; i < NUMFDS; ++i)
  183 socks[i] = make_sock();
  184 }
----------------------------------------------------------------------
FreeBSD では socket(AF_UNIX, SOCK_STREAM, 0) が ENOBUFS になりやすいということかも?
そこで,ENOBUFS になりにくいようにするにはどうしたらいいか,というのがポイントかも知れないんじゃないかと......

あと,こんなのもあるようですが......

UNIX domain sockets MFC's
http://unix.derkeiler.com/Mailing-Lists/FreeBSD/stable/2007-05/msg00206.html
0199動け動けウゴウゴ2ちゃんねる
垢版 |
2007/12/18(火) 13:44:09ID:g5P0B/l20
SpeedyCGI で speedy_backendを使わないoptionったないんでしたっけ?
もしあったら少しの間それで援用してみるとか、
0200FOX ★
垢版 |
2007/12/18(火) 13:44:42ID:???0
援用じゃなかった運用
0202 株価【851】 △△ ◆cZfSunOs.U
垢版 |
2007/12/19(水) 05:01:24ID:oWXfZ2SH0
>>201
>普通の Perl スクリプトとして動か

すようにしてみました. @qb5
0203FOX ★
垢版 |
2007/12/19(水) 05:03:31ID:???0
おおー
さてどうなるか、、、
0204 株価【851】 △△ ◆cZfSunOs.U
垢版 |
2007/12/19(水) 06:49:42ID:oWXfZ2SH0
普通の Perl スクリプトにしてからは 500 エラーは出てないようですが,しかし......
bbs.cgi の実行時間が異常に長くなってたくさんたまってしまうことが相変わらずあるようで......
今ログを取るようにしてるメインルーチンより前の段階で詰まってるってことかな?
そっちでもログを取るようにしてみるか......


last pid: 80866;  load averages:  0.08,  0.07,  0.02  up 63+17:39:52    06:41:07
18 processes:  1 running, 17 sleeping

Mem: 519M Active, 1110M Inact, 210M Wired, 63M Cache, 112M Buf, 74M Free
Swap: 4096M Total, 116K Used, 4096M Free


USER     PID %CPU %MEM   VSZ   RSS  TT  STAT STARTED      TIME COMMAND
ch2qb5 80773  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80774  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80775  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80776  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80778  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80780  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80781  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80782  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80783  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80785  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80788  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80791  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80792  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80794  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
ch2qb5 80809  0.0  0.7 15700 14792  ??  I     6:39AM   0:00.28 /usr/bin/perl bbs.cgi (perl5.8.8)
0207 株価【851】 △△ ◆cZfSunOs.U
垢版 |
2007/12/19(水) 12:21:29ID:oWXfZ2SH0
どうにか,SpeedyCGI モードにしても 500 エラーにならないようにできたようです.

さて,500 エラーになっていた原因ですが...... FreeBSD の Unix ドメインソケット問題とかではなく,
なんと人為的な要因(POST データの送信に時間をかける DoS 攻撃により
speedy_backend のスロットがふさがってしまっていた)だったようです.
実行時間のかかるルーチンのログをメインルーチンに入る前の段階で取るようにしたら,
フォームデータ読込のところで時間がかかっていることから判明しました.
で,それへの対策を取りました,ということで.
0213 株価【851】 △△ ◆cZfSunOs.U
垢版 |
2007/12/19(水) 13:01:43ID:oWXfZ2SH0
まぁ,攻撃元等のログも取ってあるんですが(/var/tmp の下にあります),
海外串をランダムに使ってる感じですね......
0214動け動けウゴウゴ2ちゃんねる
垢版 |
2007/12/19(水) 14:40:41ID:X9Mrh5XD0
あれどうやって対処すればいいんだろ
自分の掲示板も海外SPAMみたいなのでたまにやられてる
cgiがなかなか終わってくれないんでレン鯖の同時実行数制限がかかって困るんだよな
0215動け動けウゴウゴ2ちゃんねる
垢版 |
2007/12/19(水) 14:48:14ID:CCDDIJ0z0
全鯖でbbs.cgiが止まった予感。
0218動け動けウゴウゴ2ちゃんねる
垢版 |
2007/12/19(水) 14:52:54ID:elBHtltk0
本当に止まってるなら鯖落ちスレがあんな少人数で済むわけがないだろ
あそこのテンプレにこう書いてるだろ

◆鯖落ち報告者が少ない時は自分の環境を疑ってみましょう。
0219動け動けウゴウゴ2ちゃんねる
垢版 |
2007/12/19(水) 14:56:54ID:8+z2btza0
>>214
うちは海外ホストがCGI踏んだらdenyリストに追加する仕掛けにしてる
0221動け動けウゴウゴ2ちゃんねる
垢版 |
2007/12/19(水) 15:04:00ID:X9Mrh5XD0
>>219
それくらいしないとだめみたいだね。毎分何回も叩かれたりするし
国内ISP以外弾くようなことも考えておくか

それ以外の対策としては、どこかにタイムアウトの仕掛けでも入れるのかな
0224root▲▲ ★
垢版 |
2007/12/19(水) 15:27:11ID:???0?PLT(80222)
変更部分の diff を縦読みしました。なるほど。

DoSというか、例の「たまにここにもスレ立ったりするやつ」
とかとも関係あるのかも。

# これからかいぎ。
0226root▲▲ ★
垢版 |
2007/12/19(水) 18:17:11ID:???0?PLT(80222)
詳細は、企業秘密じゃないかなと。>>225
企業じゃなくて個人サイトだけど。

普通に考えれば、
例えば指定されたデートの時間に3時間遅れてもけなげに待っていたのを、
1時間たったら「わたし…きらわれちゃったのね、ごめんなさい。さよなら」って言って、
なきながらその場を立ち去るとか、たぶんそんなことなんじゃないかなと。
0227動け動けウゴウゴ2ちゃんねる
垢版 |
2007/12/19(水) 18:52:26ID:q03oaVzL0
いやいや
1時間たったら「おまえきらわれちゃったから、首吊って死ぬる!」って言って、
警備員のおじさんに追い出されるとか。
0231 株価【860】 △△ ◆cZfSunOs.U
垢版 |
2007/12/27(木) 01:29:39ID:5q/f2YAj0
一応今後のために...... Perl モジュールについてのドキュメントは perldoc で表示されます.
例えば,今回のように「LWP モジュールで POST するにはどうすればいいか?」なら
perldoc LWP をコマンドラインから実行すればドキュメントが表示されて,その中に書いてあります.
0232 株価【850】
垢版 |
2007/12/27(木) 12:40:14ID:E1mJJrg50
TATESUGI厳し杉
IP群を18ビットで丸めないで下位8ビットだけにしてくれよ
0233動け動けウゴウゴ2ちゃんねる
垢版 |
2007/12/28(金) 11:35:43ID:94zI+H690
新規一転。

気分を変えて新しいブログ書く事にしました。

まあ つまらないブログでしょうが(笑)

あ 不定期更新ですから あしからず。
http://webmastei.com/weeb
0235Sweta-Zinok
垢版 |
2008/01/11(金) 20:10:49ID:WrhgRf4G0
Hi. Sorry for my english. Happy New Year!!!!! ?Good Luck!
0236Sweta-Zinok
垢版 |
2008/01/11(金) 20:27:24ID:WrhgRf4G0
Hi. Sorry for my english. Happy New Year!!!!! ?Good Luck!
0237動け動けウゴウゴ2ちゃんねる
垢版 |
2008/01/11(金) 20:42:08ID:uMUP3tya0
age規制ってできない?
通常の利用で同一IPで多数のスレをageる事は無いから、
age荒らしが遊んでるだけだし。
時間内に同一IPからageリクエストがあってもage処理しないようにする。
cookieに前回ageた時刻を入れるのが簡単だけど、cookie偽造されるかな。
0238動け動けウゴウゴ2ちゃんねる
垢版 |
2008/01/11(金) 20:45:59ID:5zk7wkf40
多数のスレをsageるのはいいの?
スレッドフロート掲示板でageそのものを否定してるのかしらー
0239動け動けウゴウゴ2ちゃんねる
垢版 |
2008/01/11(金) 20:52:04ID:Hc/dsPtf0
そもそも短時間で複数スレ書き込めるのがおかしい?
同じスレならともかく別々のスレを1分以内に何回も書き込むのはねぇ
だいたい●+串でやってるんだろうけど
0241Sweta-Zinok
垢版 |
2008/01/11(金) 23:21:54ID:WrhgRf4G0
Hi. Sorry for my english. Happy New Year!!!!! ?Good Luck!
0245動け動けウゴウゴ2ちゃんねる
垢版 |
2008/01/19(土) 03:29:35ID:mwjMQuYN0
削除依頼板で串使っても漏れてる場合生IPが隠しタグに表示されてるじゃないですか
生IP抜けるなら、串使った場合も生IPの方でID生成して欲しい
何10本と串自演してる荒らしがいて一発でIDあぼーんできないので、なんとか対応して欲しい
串で書けなくしてもらうのが一番なんですけど
0249動け動けウゴウゴ2ちゃんねる
垢版 |
2008/01/19(土) 10:03:49ID:vPYORZBS0
>>245 >>247
どうにかして欲しいと思っているのなら
行為の具体例をURL付きで添えて欲しいところですね
残念ながらここに書いてもどうにもならないのですが

あと荒らす人はいかなる手段を使ってでも荒らそうとするもので
困ったものです
0254動け動けウゴウゴ2ちゃんねる
垢版 |
2008/01/20(日) 04:02:33ID:I2ETjr5w0
生IP漏れ串の場合は生IPの方でID生成すればいい
普通の串より匿名串は数がかなり少ないから荒らし抑制になる
0255動け動けウゴウゴ2ちゃんねる
垢版 |
2008/01/20(日) 07:50:10ID:eiul9yGq0
そもそも漏れ串では書けないわけだが
0263動け動けウゴウゴ2ちゃんねる
垢版 |
2008/02/09(土) 04:38:23ID:A/hSzM460
[ ^ω^]  や [―{}@{}@{}-] 表示は荒らし抑制期待できるんだから
VIP931規制がない板だったら導入してよ
0267動け動けウゴウゴ2ちゃんねる
垢版 |
2008/02/26(火) 02:12:09ID:oT94uxC10
P2だとIP変えてもID変わらないじゃん
●で書き込んだ場合はIP変えても串使っても同じIDにして欲しい
●の識別子でIDを生成
0276動け動けウゴウゴ2ちゃんねる
垢版 |
2008/03/20(木) 00:15:30ID:34tY7L2g0
実行ファイルをバイナリにすれば全て解決。
■ このスレッドは過去ログ倉庫に格納されています

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