2~3日前から、新規エントリー投稿時に必ず500エラーになり、エントリーは保存されているにも関わらず、トップに反映されず、pingも飛ばずという症状に見まわれてます。エントリー数が400、コメント数427でこれかー。こりゃーとうとう、DB逝ったか?と思いつつ、なんか対策たてられないかなーと思っていろいろと調べてみると、どうやらサーバー側の CGI 用メモリ不足エラーのような感じですなー。
新規エントリーの投稿は反映されないが、リビルドは普通に完了するし、コメント投稿も問題なし。

ということなので、まずは、メイン・インデックスと同時に再構築するインデックスファイル関連を見直して、atom フィード(かなり負荷がかかるようなので)と、全コメントリスト、全トラックバックリストを出力しないように設定。

次に、mt.cfg ファイルの設定をちょこちょこっといじってみる。
・PingTimeout の値を 20 → 40 へ
・EntriesPerRebuild の値を 40 → 15へ(リビルド時のエントリー構築数を40から15へ)

これで駄目なら、カレンダーをやめてしまうかな。日別アーカイブの再構築がかなり負荷かかっていそうなので。

それでも駄目なら、BarkleyDB 使用時の奥の手があるんで、そいつをやってみるかなー。DBフォルダー内のあるファイル(fileinfo.db)を削除するんだけど、けっこうヤバメなのでどうするか思案中・・・。

【追記 : 2004年11月28日】
と思いきや、エラー解消されなかったので、削除してしまいました。とりあえず、投稿できた模様なので、後は、様子見ですねー。一応、ヤバイ内容なので、やられる方はバックアップをきちんととって、イチから作り直す可能性もあるという覚悟で、各自の責任でやってください。

タイムリーに、同じ内容を Magic White さんがエントリーしてたので、トラバしときます。


●500エラーと投稿時遅延解消法


削除する前の私の fileinfo.db サイズが23MB、削除して再構築後のサイズが224KB。なんじゃそりゃ。(笑)

【追記 : 2004年11月30日】
トップページをいじるついでに、Magic White さんの ●mt-shrinkfinfo.cgiがプラグインに。を参考に、Ogawa::Memorandaさんの mt-shrinkfinfo.cgi を導入しました。それによって、現段階では500エラーでなくなりました。
やられる方は、削除するやり方よりも、こちらの方が100倍以上正確で安全ですので、プラグイン導入で勧めてください。

以下、転記。(パクリとも言う:笑)


1.mt.cfgの「DataSource ./db」をフルパスで設定する。
(ロリポな人の場合、/home/sites/lolipop.jp/~というのがそうです。管理画面にログインしてアカウント情報から確認できます。)
2.Ogawa::Memoranda mt-shrinkfinfo.cgiからShrinkFInfo.zipをダウンロードして解凍する。
3.解凍されたら「ShrinkFInfo」フォルダごとpluginsフォルダ内にアップして、mt-shrinkfinfo.cgiにパーミッション設定する(通常755。ロリポは、マニュアル見てる限りバイナリモード転送700推奨っぽいですが、アスキーモードでも755でも動きます。) plugin.plは、そのまんま644で大丈夫です。
4.管理画面を開いて「ShrinkFInfo Plugin」のところをクリックすれば、実行されます。
(きちんと導入されていれば、利用可能なプラグインという項目の中に表示されてます。)


私、パーミッションは755でやりました。