2006年5月2日火曜日

MTの再構築が重い!てか途中で止まる。


会社で使ってるmtのバージョンを3.17から3.2にあげたら、再構築が劇的に重くなった。



topコマンドで見てみたらロードアベレージが15!!超高負荷状態だ。mt.cgiのSIZEは1600Mになってる!!



調べてみたところ、どうやらmt3.2はmt3.17に比べて再構築がハンパなく重くなっているそうだ。3.2のリビルド時のメモリ使用量は、3.171の約10倍なんだとか。。。
そして、BerkeleyDBをつかってる場合はさらに重くなるらしい。うちの環境にそのまんま当てはまる。。。



で、ググって見たら同じ問題で困っている方が大勢いらっしゃった。いきなり10倍になったら、そりゃみんな困るよね。



とりあえずの対処法として、mt-config.cgiの「EntriesPerRebuild」の設定値をデフォルトの「40」から「10」に下げてみる。
こんな感じ↓




EntriesPerRebuild 10




さっそく再構築する。再構築の小窓とtopコマンドの両方を見てチェックする。



「再構築中 エントリー: 1 - 10 ...」 同時にmt.cgiのSIZEが増えていく。10M、50MB、100MB、300、600、、、



小窓が自動リロードされ、「再構築中 エントリー: 11 - 20 ...」になる。topコマンドのmt.cgiのSIZEがリセット。そしてまたSIZEが増え始める。。



これの繰り返し。遅いけど、なんとか再構築終わるか。
この調子で「再構築中 エントリー: 161 - 170 ...」くらいまで来た。が、topコマンドを見てみたらmt.cgiのSIZEがまたもや1600MBに!!どうやら固まってしまったようだ。10個ずつにしたのに、それでもダメか。とほほ。。。



ここで、いさぎよくBerkeleyDBはあきらめる。MySQLへ移行しよう!



MySQL移行に向けて、再度ググってみる。mt標準の「mt-db2sql.cgi」だとトラックバックデータが参照できないエラーがあるらしいので、Googleで見つけた「mt-db-convert.cgi」というのを使ってみた。さっそく走らせてみる。





SQLエラーが発生しました: You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '2005-10-10 12:53:30', NULL, '2006-05-02 12:08:32', NULL)' at li




という、意味不明のエラーで止まる。どうやら「MT::Log」のところで止まっているようだ。
ログなんていらないや、ってことで「mt-db-convert.cgi」の32行目「MT::Log」を消したら通った。




続いて、別のエラーに遭遇。今度はテンプレートのところだ。




SQLエラーが発生しました: You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '\'さん。コメントしてください。 (<a href=\"<$MTRem




探してみたら、個別エントリアーカイブのテンプレートに該当の文字があった。これも不要なので該当の箇所を全部削除。そしたらここも通った。




以上で移行完了。ふぅ。
とりあえず「EntriesPerRebuild」を「20」にして再構築をかけてみたが、そんなに負荷も高くならずに無事完了した。いやぁ、よかったよかった。




しかし、ここまでmtが重いのは正直困りものだ。
実は3年くらい前、仕事で韓国製のCMSを触っていたことがあり、そのときもCMSの高機能化と記事数の増加に比例してHTMLの出版時間が長くなるという問題が発生していた。そのときは、



・ヘッダやフッタなど、共通部品はSSIを使う
rebuild支援ツールを自作して使う



など、運用でなんとか乗り切って(ごまかして?)いたのだけれど、結局それも根本的な解決にはならない。



この問題は静的HTML型CMSの宿命だと思うのだが、mtはこの問題を克服できるんだろうか。。
シックスアパート社はバージョン3.3で何らかの手を打ってくると思いますが、いったいどんな手法になるのか。ちょっと楽しみにしてます。



 



今回お世話になったサイト:
http://www.ec-blog.com/05/000061.html
http://www.ec-blog.com/04movable_type/000060.html
http://as-is.net/wiki/MT_Database_Converter/ja 



 

1 件のコメント:

  1. MovableType3.3が6月27日にやってくる!

    昨日、シックスアパートから発表あり。

    返信削除