会社で使ってる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
MovableType3.3が6月27日にやってくる!
返信削除昨日、シックスアパートから発表あり。