[FrontPage] | 更新履歴 - サイトマップ - "ZopeWithDaemonTools" 配下のコンテンツ - 過去を発掘 | [Snap.Shot] |
ZopeWithDaemonTools |
ごめん、既にJZUG-MLへ投稿する気力がないのでアレなのだけど、ウェブ経由で 見てしまった ので。 わざわざ再登録して投稿するほど心が広くないので、適宜だれか拾って投げてくれ…
ハッキリ言ってdaemontoolsなんて使うのは自殺行為。 なぜかというと、プロセスが落ちてから、それが再起動するまでの間隔が、わずか一秒しかない。 これは、一時的な高負荷状態から回復するのを妨げるので、全くもってよろしくない(経験者は語る)。 configで変えられるのかとも思ったのだけど、そうじゃないみたい。つまりプロセス監視ツールとしては論外。
DJB系のツールは、どれもそれなりに軽いのでなんとかなるかもしれないけど、それでもDoSに弱い
強くないって知ってた?
マイナーだけど、SecurityFocusにも事例があったはずだ。
ましてや、重たいZopeで使うなんて、とんでもない。
堅牢なBSD系のOSでも回復を待つのは容易じゃないと思う。Linuxで電源を触れるのであれば、 素直に諦めて電源を入れ直すべき(ワタシはそうした)。Solarisは言うに及ばず、だ。
余談 : NT?2000?XP?だって、毎日リブートしてるでしょ?(以下略)
もとよりZopeが落ちないためには、祈るよりほかない(これはZopeやPythonを責めるのは筋違いだと ちょっとだけ思うが、でも落ちないことを確実に保証できない)。一方のPerlやRubyは、死ぬときは まず間違いなくプロセスごとフリーズする(socketまわりのタイムアウト処理をALARMに頼っている、 一部のクソプログラムだけかもしれないけど)ので、実装としてはPythonのほうがまだましだと思って いるけど、少なくともdaemontool経由では二次災害を引き起こす可能性大。
DoSからの回復力は落ちるかもしれないが、再起動間隔を空けることで、少なくとも同一ホストで 稼働しているサービスへの影響は免れる。つまり、二次災害を防げるのだ。 もちろん、そこまで心配しなくても守れる設計(Zopeの稼働条件を下げたり、別サービスが影響を受けないように したり)ができていれば尚良いのだけど、最近Zopeを使い始めたひとは、そこまで全く考えていないよね、たぶん。
さらに余談 : じゃぁJava系とかColdFusionとか思う?かたまらない自信があるなら採用しなさい。 少なくともワタシは、どちらも固まった事例を知っている。
訂正 2002-05-30 takano : …ということで、わしは独自スクリプトで監視していたのだけど、 これ実はz2.pyの-Zオプションを指定することで、Zope自身が監視プロセスつくってforkしてくれてたんだそうだ。 しらなかったよー、ばかー、まぬけー<自分
追記 2002-05-31 takano : mooyaさんいわく、これは-Zオプションつけてても落ちるときには監視プロセスごと 綺麗に落ちてくれるらしいのでモノは考えようであります。exitcodeでも見てんのかな。
もちっと訂正 2002-05-30 takano : DJBがDoSに弱いというのは言いすぎなので「強くない」に訂正。 tcpserverでオモテを制限すれば、外からの攻撃にはそこそこ耐えるかも。 SecurityFocusにあったやつは、どうやると書いてあったんだっけなぁ。忘れてしまった。
2002-05-31 Moo : はじめまして。そのページの筆者です。自分はたまたま海外のサイトでこの方法を見つけ、 JZUG MLで希望があったので自分のサイトに書いてみたんですが… 削除した方がよろしいでしょうか?
2002-05-31 takano : ありゃっ、御本人登場とは恐れ入ります。 ↑に書いてあることが妥当だと思うなら、本文を削除する代わりにここにリンク張るなりなんなりしてください。 逆に「そうは言われたけど納得いかねー」ということなら、反論でもなんでもしてください。 At your own risk ってことで。どうぞよろしく。
というか、DJBの思想(の利点と欠点)が理解できないなら、DJBツールなんて面倒臭いモノ使うこたないと思う…
2002-06-01 takano : JZUGのWikiにウェブ持ってた んですね。 あちらにもツッコミ入れておきました。
2003-02-15 a_i: すんません。 >configで変えられるのかとも思ったのだけど とのことですが、runスクリプト中でexecする前にsleepしておくとかでは何かまずいんでしょうか? まぁこの場合巡回間隔の変更ではなくて実際にexecがかかるまでの時間の変更になりますが。
2003-02-16 takano : おー。 すごい、書いた本人ですら忘れちゃったページ、読まれる方いるんですねぇ。 ウェブに散らかしたページ、消さないならそれなりに神経つかわないといけないですね。
で、本題の「sleep挟んだ中間スクリプト使えばいいじゃん?」の件は、まさにその通りですね。 盲点でした。元のMooさんにも是非教えてあげてください。
ただ、そこまでしてdaemontools使うなら、別に(sleep挟んだ)無限ループな 自作シェルスクリプトでいいじゃん?と思ってしまうのです(私はそうしてます)。
6-2 takano : SecurityFocusの記事あったぞ。QMail RCPT DoS Vulnerability
だそうだ。補足しとくと、DJBの言い分は「ユーザリソースを無尽蔵に与えるほうが悪い」とのことで、
qmailのバグではないと主張しているみたいだ。 ulimit -d 1024
とかやって、ヒープは1MBくらいにしとけと。
…つまり、アプリケーション利用者は、その消費メモリも予期しとくべきであるとのことである。
DJBマンセー (精一杯の皮肉を込めて)。