ここ数ヶ月ほど、Weblogの記事投稿(に伴うサイト再構築)、設定変更やコメント投稿などMovabletypeの処理速度が非常に遅くなっていて、9月に入ってからは記事投稿に失敗することが多く発生するようになった。小手先の対応策を講じて凌いでいたつもりだったが、先日トラックバック処理モジュール、コアモジュール動作時のサーバー負荷が非常に高くなっているという報告を受けて、抜本対策を取る事にした。
- ほぼ数分おきのトラックバックスパムによるトラックバック処理モジュールへの直接アクセスが発生していて、このモジュールがほぼ常駐状態でサーバーに負荷を掛けていた。これを回避するために、同モジュールをリネームする。ついでにコメント処理用のモジュールも同様にリネームする。
- weblogのデータベースとして使用していたBerkeleyDBは設置や管理が簡単である一方で、使用時のメモリー消費量は多く、また件数(記事数)が増えると性能が落ちるそうだ。MT3.2-ja-2ではその影響で再構築に失敗する不具合は修正されているものの、それ以降のバージョンでも同現象に遭遇している人が多い。このweblogシステムもも何だかんだで記事数が1200を越えつつあり、データベースもかなりのサイズになってきている為、不具合発生の条件に合致する。この不具合を根本解決する為に、データベースをBerkelyからSQLiteに移行することにした。
以下に参考にした資料を挙げておく。記事投稿やコメント受付の性能が少しは向上することを期待して、しばらく効果のほどを見守りたい。(と書いて、移行後の初投稿。ボタンをぽちっと。行け~)
- mt-tb.cgi・mt-comments.cgiのリネーム- Matatabi.ws
- Six Apart - Movable Type News: Berkeley DBの環境下でMovable Type 3.2日本語版をご利用のお客様へのお知らせ : http://www.sixapart.jp/movabletype/news/2005/10/05-1955.html
- 【重要】MT3.2-ja-2の再構築エラーの対処法- 商用BLOG専門店 : http://www.ec-blog.com/05/000061.html
- Movable Type + SQLite-小粋空間 : http://www.koikikukan.com/archives/2005/10/09-235932.php
- mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト-Ogawa : Memoranda : http://as-is.net/blog/archives/001023.html
劇的に軽くなっています。
と思ったが、コメントはやけに重いなあ。システム負荷は大変改善していますが、何故か、コメント用cgiが遅すぎ。mod_perl化も検討したほうがいいのだろうか。
フィルタ処理に時間が掛かっているのかもしれません。Trackback用cgiも自身を改善したわけではなく、スパムを「避けた」だけなので同じかもしれない。
mod_perl環境でMovabletypeを動かすメモ→http://naoya.dyndns.org/~naoya/mt/archives/000393.html