Movable Type 備忘録

 

 「503 Service Temporarily Unavailable」について

こんにちわ^^
チョビッとショボくれてるbzbellです。

先日から、わたしのサイトにアクセスすると「403 Forbidden」とか「503 Service Temporarily Unavailable」のエラーメッセージが表示されたり、中途半端にページが表示されたりして、ご迷惑をおかけしました。

その後はどうでしょ。
まだ、エラーページなどが表示されたりしてますでしょうか。

トラックバック・スパム対策として、htaccessをイジったりなどを全部戻して、しょうがないのでトラックバックを一時受け付けないようにしたんです(つω-`。)

さくらインターネットのサポートに頼んでも何もしてくれないし…ひどいよ (´Д`;)
しょうがなく会社の人にいろいろ聞いたら、通常レンタル・サーバは共有サーバだから個人が使える許容量というのが決まっているんだそうです。

その許容量を超えると、「503 Service Temporarily Unavailable」というエラーメッセージが表示されるんだそうです。
じゃぁ、その許容量ってどのくらいかというと…わかりません。 サーバによって異なるんだそうです。

でも、わたしの場合確かにそのエラーメッセージ表示されるけど、キャパを超えるようなアクセスがあるとは思えないし、別な要因じゃないかと思ってたんです。

そこで、TELNET(SSH)での接続のやり方など教わって、サーバに接続して現在実行されているもの(実行されている個々のプログラムをプロセスというんだそうです)を見たところ、<defunct>という名前のプロセスが1、2コいました。

常にいるわけじゃなくて、わたしのサイトにアクセスすると、たまにその<defunct>というのがヒョッコリ表示されてたんです。

この<defunct>というプロセスは、俗にゾンビ・プロセスというんだそうです。 詳しいことはよく分かりませんが、このゾンビ・プロセスは本来いちゃいけないものらしく、このプロセスがたくさんいたり、CGIのスクリプトが同時に多数実行されたりすると、キャパを超えてしまって「503 Service Temporarily Unavailable」というメッセージが表示される…というところまでは分かりました。

また、傾向としてトップページやカテゴリページなどを表示するときは、エラー表示の確立は低いのですが、エントリ・ページを表示するとかなりの頻度でそのゾンビがヒョッコリ現れることも分かりました。

実はわたしのサイトでは、PHPスクリプトをけっこう使ってます。 エントリ・ページを表示するために、十数個のPHPスクリプトが動的に読み込まれるんです。 読み込まれたことにより、動的な表示がされるわけですが、反面、複数のプロセスが同時に!? 実行されるようです。

単純計算で、1アクセスで10コのプロセスが実行されるとして、同時に10アクセスあったら100コのプロセスが実行される…ということなんですかねぇ。
そんなヤワなサーバじゃないとは思いますけど、キャパを超えるとはそういうことみたい。

また、もう1つの傾向としてFirefoxやOpera、IE6.0からたくさんのページを表示しても、とりあえず表示はされるのですが、IE7.0だと1/2回の高確立で、表示中に中断されてしまうことも分かりました。

根本的な原因はわたしにあるのかも、ですけど、あまりにも軟弱過ぎです、IE7.0 ヾ(`Д´*)

ということで、PHPスクリプトでなくてもいいものは、テンプレート・モジュールにすることで、動的読み込みを減らしたら、エラーの頻度は少なくなりました。

そう考えると、WordPressってどうなっちゃうんでしょうね。
WordPressって完全なPHPで作られた動的ページだっていうし・・・。 試しにWordPressで作られたサイトをIE7.0で表示してみました… … …予想通り、わたしと同じ現象がでました。 いくつかのサイトで試しましたが、どれも同じ結果でした。

ということで、何でもかんでも、PHPによる動的読み込みをせず、MovableType(ムーバブルタイプ)にはテンプレート・モジュールもありますので、そちらをうまく使うことが重要だと認識させられました。

それでも、やっぱりエラー表示されるときは連続的なときもあって、他にも要因があるのかも、です。
ぶっちゃけ、もうよく分かんなくなってます (´Д`;)
調べるポイントが分かるなら、いくらでも調べようあるけど、ゼンゼン検討つかないです。
PHPスクリプトにしたって、なんで今さらってかんじで、ずっと前からガンガン使ってたのに…。
なんだか疲れちゃった(。-ω-)

- 2006.12.02 追記 -

新たに分かったこと。
IE7.0だけが表示を中断されてしまっています。 あと、わたしのサイトでは、複数のブログをMovableType備忘録でまとめて表示させてるのですが、 他のブログのエントリでは、ムチャな表示させてもエラーにならないのに、MovableType備忘録のエントリ・ページだけがエラーになってる

チョビッとだけ光が見てえてきましたの
エントリ・ページの差分を調べてみますの。

さらに分かったこと。
どうやら、スパマーはトラバを受け付けないようにしているにも関わらず、mt-tb.cgiへアクセスしてるみたい。 すごい数のCGIが実行されてる やっぱりスパムが原因なの

- 2006.12.03 追記 -

とりあえず、暫定的にメイン・インデックスとエントリ・ページのテンプレートをサクッと差し替えてみました。
またぁ~りと原因を探っていくですの。

では、SEE YOU♪

 Trackback Pings(0)

No trackbacks found.

 Comments(12)

#1: Posted by ゆにっく Author Profile Page [RES]

おはよう!うちはFirefoxでここ見てるので、表示中の中断っていうのは今までにはなかった記憶があります。それより、Firefox2.0自体がよく固まるんで。(爆)

さくらでダメなら、我がxreaもダメやろうなー。って現在は何もサーバーにインストールしてない状態ですが。(笑)

ブログやめたついでに、Wordpress入れて出直そうかと思ってたのに、IE7.0では途中で読み込み終わっちゃうんですか…。エントリーが今700ぐらいあって、静的生成にこだわってきたものの、再構築エラーが頻繁になってきて、更新する意欲がなくなったんですよね。(^^;)こういうの聞くと、Wordpressへの移行もためらっちゃいます。いい情報をありがとう!

ここみたいに、MTをphpかするのがいいのか、それとも完全にphpかされてるWordpressに鞍替えしようか…。まだそんな段階なんです。(笑)書くことは好きなので、VOXの方には書いてますが。

#2: Posted by けいこ [RES]

はじめまして。
WINxp IE6の私は未だに、最初は表示されず、リロードして見ております。

#3: Posted by bzbell [RES]

>>1 ゆにっく さん

こんにちわ^^

ホントにご迷惑をおかけしてごめんなさいですの(つω-`。)とほほ

> ブログやめたついでに、Wordpress入れて出直そうかと思ってたのに

すいません。誤解がないように補足しておきますの。
WPが決して良くない…というわけではないですから。

それにたかが十数個のPHPスクリプトを動的に読み出したからといって、エラーするってのも正直信じがたいところがあるですの。
だって、今までわたしのサイトそれでやってきてましたから…。

スパム行為は除く、それ以外の負荷といったら、わたしの場合PHPスクリプトだったので、そこら辺を外す(静的にする)ことでエラーの頻度が減ったというだけなんですの。

> MTをphpかするのがいいのか、それとも完全にphpかされてるWordpressに鞍替えしようか…。

う~ん、どっちもどっちですかね。

実はわたしのサイトってWP的な作り…といったらご幣ありますが、ヘッダ部とかフッター部、本文などいったものすべてをパーツ(PHP)化してたので、それらを一気に読み込むという作りだったんですの。

#4: Posted by bzbell [RES]

>>2 けいこ さん

はじめまして^^
ご迷惑をおかけしてごめんなさいですの(つω-`。)とほほ

> WINxp IE6の私は未だに、最初は表示されず、リロードして見ております。

Σ( ̄Д ̄;)ガーン!!
もう正直何が原因なのかよく分からないですの。

今もサーバに接続して、実行プロセスを確認してるのですが、スパムがアクセスしてるんですよ(つω-`。)とほほ

やっぱりスパムが原因なのかなぁ。
お手数おかけしてすいません。

#5: Posted by bzbell [RES]

>>2 けいこ さん

けいこさーーーーん( ̄∇ ̄)/

とりえあず、けいこさん含め、他の訪問者さんのご迷惑になってしまうので、メイン・インデックス、エントリ・ページのみテンプレートを完全静的ページに変更してみましたの。

みすぼらしいサイトになっていますが、ご了承ください(m;_ _)m ペコ

#6: Posted by oscar [RES]

こんにちは、大変でしたね。って、まだ終わってないか・・・
IEはスクリプトなんかのエラーの発生も、結構Firefoxと違いがあったりしますよね。
トラバスパムなんですが、もしかしてthrottleいじったの逆効果になってませんか?
もし、throttleいじる理由がサーバーの負荷を減らす事だったら、逆に数字を増やした方が良い結果が出ると思うんですが。
throttleではじいた時に、サーバーはエラーを返してると思うんですが、スパムボットはエラーの時は何度も再送信するらしいです。真偽の程は解らないんですけど。結果却ってサーバーに負荷をかける結果になると思います。
ただただ、ジャンク・トラバを管理画面で見たくないだけなら、問題ないけど負荷を考えてなら、もう一度見直した方が良いかもです。
スパムは受け取っちゃった方が、負担は軽いかも。

#7: Posted by bzbell [RES]

>>6 oscar さん

こんにちわぁーーーー 。・゚゚・(ノд≦)・゚゚・。

> こんにちは、大変でしたね。って、まだ終わってないか・・・

はい。今まで使ってたPHPをすべて使わないように修正してるところなんです。。。こんなんじゃPHP化意味ないジャン!! と思いつつもチマチマと修正してるんですの。
気晴らしにチョビッと遊んじゃってますけど(; ̄∇ ̄A

> 真偽の程は解らないんですけど。結果却ってサーバーに負荷をかける結果になると思います。
> スパムボットはエラーの時は何度も再送信するらしいです。

そうなんですの!?
いわれてみればそんな記事見たことありますねぇ。

oscarさんに教えていただいた対策ゼンゼンOKだったんですけど、ログには異常に足跡が残ってたので、絶対MT(サーバ)に負荷かかってる!! と思ったんですよ。
それで、mt-tb.cgiの名前変えたり、htaccessイジったりだの、その他諸々やったらなのか、どうか分からないのですが、PHPの読み込みがことごとくエラーしてるようなんです(つω-`。)とほほ

PHP読み込みをなくしたら、頻度が減ったんでそれが原因なのかなぁ…と疑いつつも修正してたんですの。

そかぁ、柔よく剛を制すってやつですね( ̄∇ ̄)b
そかぁ、そこら辺は考えにも及びませんでしたの!!
ありがとうございます!!

さっそくやってみます。

#8: Posted by oscar [RES]

私のところは、一度throttle小さくしたとたん、サーバーの負荷がとんでもないことになりましたが、緩めにしたら普通に戻りました。
それから、やり方は見当もつきませんが、トラバでエラー時に返すコードを、正常終了のコードにしちゃえば良いっていう、乱暴な対策もあるみたいです。
スパムだけに有効なら、それも良いかもですね。

#9: Posted by oscar [RES]

それから、あんまりひどいようなら、Apacheレベルで海外のアドレス弾くのも手かもです。
確か2バイトの入らないコメント弾いてましたよね。bzbellさん。

#10: Posted by bzbell [RES]

> 緩めにしたら普通に戻りました

oscarさんが緩めたとはデフォの設定値よりさらに緩くしたんですの?

> Apacheレベルで海外のアドレス弾くのも手かもです。

レンタサーバでもApacheレベルで海外アドレス弾く・・・というのは可能ですの?
なんだかシロウトがサーバの設定をイジると、今回みたいに想像もつかないトラブルに巻き込まれそうで(; ̄∇ ̄A

> 確か2バイトの入らないコメント弾いてましたよね。bzbellさん。

はい。その手の対策はやっています。

1つお聞きしたいのですが、SSHでLinuxに接続して ps auxwというコマンドを実行したら、mt-tb.cgiのCPU占有率っていわれるところが30%とか40%ってなってるんですけど、大丈夫ですかね(; ̄∇ ̄A ドキドキ

再構築などのmt.cgiはせいぜい15%前後なのに、mt-tb.cgiがやたらと占有してるように見えるんですの。

#11: Posted by oscar [RES]

>oscarさんが緩めたとはデフォの設定値よりさらに緩くしたんですの?
今サーバー修復中だから、ちょっと確認できないですけど、少し大きめぐらいにしましたよ。

>レンタサーバでもApacheレベルで海外アドレス弾く・・・というのは可能ですの?
bzbellさん、mt.cgiに制限をかける方法やってたじゃないですか。あれですよ。
海外のアドレス範囲はググれば見つけられます。後はそれをDENYすれば良かったと思いますよ。

#12: Posted by けいこ [RES]

こんにちは☆
「はじめまして・・」の私に親切にお返事をいただけて、嬉しかったです(^^

このデザイン好きです!
シンプルでとても見やすくなったと思います。
変更していただいてから、今初めて来てみたのですが、表示はOKでした!

これからもMTカスタマイズなど、参考にさせていただきます(^^

 Post a Comment

コメント用フィード