500エラー地獄脱出作戦

ウチは現在MTのVersion 3.33-jaを使用してココを作っています。
(※MT:Movable Type・・・ブログを構築するプログラム)
ところが最近エントリー数が1000を越えた辺りから「500 Internal Server Error」が頻発するようになって苦慮していました。

今まではだましだまし使ってたんですけど、ここ数日でいよいよダメになりました。
エントリーを構築しようとすると必ず途中で500エラーが出るんです。
個別エントリーの構築まではどうにか動くのですがそこで停止。
仕方ないのでトップページの再構築は改めてトップだけでやっていました。

エントリーをアップするだけならそれでもいいのですが問題はトラックバック。
個別エントリーの構築までで止まっちゃうって事はその次に行われるはずのトラバのPing送信過程まで到達しないって事なんですよね。
結局Pingがどこへも送れない状態と言う・・・(T▽T)

今まで普通に動いててどこもいじってないんだからオカシイのはサーバーだろ?と思ったのでお世話になってるサーバーのロリポさんにメールで尋ねたところ次のような回答が。

MovableTypeで正常に再構築が出来ない場合、エントリー数やカテゴリ数が増加し再構築に時間がかかりタイムアウトが発生している可能性がございます。

MovableTypeではmt-config.cgi(またはmt.cfg)の設定に再構築の量を調整(EntriesPerRebuild)する項目があるようです。

また、トラックバックやpingは、弊社ロリポップ!レンタルサーバーより、トラックバック、ping先のサーバーに情報が送信された後、トラックバック、ping先のサーバーから返答を待ちます。
そのため、トラックバックやpingの送信先がある場合、その分返答待ちになるため、再構築に時間がかかるといった現象があるようです。
よろしければ、pingを固定で送信する場所が多い場合などは、一旦減らしてみて頂く等の方法もございますので、よろしければお試しください。

尚、MovableTypeについてですが、MovableType自体は弊社にて開発を行って
おりませんので、MovableTypeの仕様や技術についての詳細な確認が行えません。

可能な限りのアドバイスは、差し上げて参りますが、MovableTypeの詳細に関しましては、開発・販売元のsixapart社にお尋ね頂く事をお勧めいたします。


なるほど。

ってんでまず試したのはmt-config.cgiのEntriesPerRebuildの調節でした。
3.33からmt-config.cgi内にEntriesPerRebuildの項目は無くなっていますので追加記述しました。
デフォルトではEntriesPerRebuildの値は40になっています。
つまりエントリーを40づつ再構築するって設定。
40づつ構築してるうちに時間がかかってタイムアウトになり500エラーが出てるのなら、この値を小さくしてさらに小分けで再構築したらOKだろう、って理屈ですな。
と言う事でmt-config.cgiに

EntriesPerRebuild 10

と追加記述して試してみました。
10エントリーづつ再構築をします、って意味ですね。
結果は・・・。

ダメでしたorz

やはり個別エントリーのところまでは動くのですがそこで止まってしまいます。
そこでさらに次の一行を追加記述してみました。

PingTimeout 30

デフォルト値は15です。
つまりデフォルトではタイムアウトになるまでの時間が15秒と言う事。
それを30秒に延ばしてみたワケです。
さて、今度こそうまくいくか?

・・・やはりダメでしたorz

もちろんPingをどこにも送らないようにしてもダメ。
だってその作業過程に到達する前に止まってるんだもの。
関係ないです。

残る手段は
●よりパワーのあるサーバーに鞍替えする。
●エントリーを減らす。
のふたつくらい。
前者は超面倒だしお金もかかる。
かと言ってエントリーは減らしたくない・・・。

あー、どうしよう?
と思いつつ色々いじってたんです。
500エラーが出るのは承知で何度も再構築を試みたり。
で、そのうちあることに気付きました。
どうやら「映画」カテゴリー以外はたまに構築に成功するんです。
って事はつまり、これは映画カテゴリーのエントリーが増え過ぎたための現象なのか?と。
その時、映画カテゴリーには417のエントリーがありました。

ああ。
そういうことか・・・。
やっと理解しました。

結局、今のサーバーは1カテゴリーにつき400くらいのエントリーを再構築するパワーしか無い、って事なんだな。

と。

それならばカテゴリーを分割してやればうまくいくはずです。
つまり1カテゴリーのエントリー数を減らしてやるのです。
少なくとも今まで400に近づくまでは普通に動いてたワケですから。
理屈では1カテゴリーを400エントリー以下にすれば良いはずです。

そんなわけで苦肉の策で映画カテゴリーをいくつかに分けました。
とりあえずシンプルに年ごとに。
http://hassei.net/blog/2004/02/post_235.html
すると一番多い年でも200エントリー以下になります。

で、再チャレンジ。
すると・・・。

やっとうまくいきました!(T▽T)

あー!
疲れた。

でもコレって全然根本解決じゃないんだよねえ。
単なる対処療法。
とりあえず1カテゴリーが400エントリー以上にならないように気をつけるけど。
今後もエントリーは増える一方だしなあ。
結局いつかは追い付かなくなるはず。

将来の事を今から考えておかないといけないな。
引っ越しするか、エントリーを減らしていくか。

それまでにサーバもMTもパワーアップしてくれる、なんて事があったら一番なんだけど。
なさそうだよなぁ(^_^;)

ちなみにサブカテゴリを設定して分割しようかとも考えたんです。
でもそれでうまくいく保証もなかったし、複雑な構造にはしたくなかったし、で結局メインカテゴリとして増やしました。
さーて、どっちが良かったんでしょうね?
とりあえず「つぶやき」が増えてきたら今度はそっちで試してみよっと。






しかし、ど文系人間が一人でやる作業じゃないわ。
頭がウニです。
ま、教えてくれる人なぞ近くにいないから仕方ないです。
コツコツ自力で・・・と。

--記事の内容を自動的に分析して関連商品を表示しています--


▼ランキングに参加しています。是非クリックよろしく。
ブログランキングくつろぐ
■発生の映画感想INDEX(50音順)

■2007年に観た映画→PC/携帯
■2006年に観た映画→PC/携帯
■2005年に観た映画→PC/携帯
■2004年に観た映画→PC/携帯
■2003年に観た映画→PC/携帯
丼〜DON〜 発生どっとねっと
投稿者: 日時: 2007年02月21日(水) 00:10

トラックバック▼

このエントリーのトラックバックURL:
http://hassei.net/cgi/mt/mt-tb.cgi/2421

記事「500エラー地獄脱出作戦」へのコメント▼

えらい!がんばりましたね。
わたくしには一行たりとも理解できませんでしたが、あーだのこーだの頑張ってる発生さんの姿ははっきりと浮かびましたよ。お仕事で使ってるマイコンのご機嫌をとるだけで精一杯のわたくしには、到底出来ない芸当です。
なんにもお手伝いできないので無理強いは出来ませんが、
ここがなくなったらさみしいので、なんとか続けていただけるとありがたいです・・・

あ、グータンに劇団ひとりが出てます。彼はエラの張りを狭める整形をしたような気がしてなりません。

投稿者 ゆうこりん | 2007年02月21日(水) 23:06

ホント。ワケ分からないですよね〜(^_^;)。でも実は大した内容が書いてあるわけじゃなないんです。ほとんど自分用の備忘録をアップしたよーなもんで誰かが読む事など一切考えてない文章なもんだから分かりにくいってだけで。でもマイコンの前で四苦八苦してたのが伝わったのでヨシってところでしょうか(笑)。

そうそう。
先日、無事に一年分のサーバー代とドメイン代を払って来ました!
なので少なくともこの先一年はいる町も含めてhassei.netはちゃんと存続するはずです。
いやー。良かった良かった。
実は昨年はこの時期拘束されててギリギリまで支払いに行けずにhassei.net消滅の危機があったんですよー。
今年はセーフ!

わしもゆうこりんさんがいらっしゃらなくなると寂しいのでマイコンのご機嫌、いつもばっちり取ってやってて下さいねー。

投稿者 発生 | 2007年02月22日(木) 07:19

コメントを投稿▼