Movable Typeの再構築 高速化いろいろ
Movable Typeの再構築を高速化する方法をいくつかご紹介します。
インデックステンプレートの再構築オプションをはずす
インデックステンプレートを表示した際に、すべてのテンプレートに緑のチェックが入っていませんか?
これは再構築オプションといって、ブログの投稿や編集、インデックスの再構築を行ったときにそのファイルを再生成するというオプションです。
メインページやアーカイブインデックス、RSSといった類は仕方ないのですがスタイルシートやjsファイルなどの一度生成したら更新しなくていいものは再構築オプションを外してしまいましょう。
はずし方は、テンプレート名をクリックしてテンプレートを編集する際に、下にある『再構築オプション』のチェックを外してください。
不要なMTタグの除去
テンプレート内にはブログの設定を反映させるタグがいくつかあります。
これはブログの設定を変更した際にテンプレートを書き換えずにすむ為にあるのですが、MTにはテンプレートの置換機能が付いているので、設定を変更した際にも手間を掛けずに変更できますので、設定を反映させるタグが利用されているところはテンプレートに直接設定を記述してしまいましょう。
設定を反映させるタグの代表的なものは以下の通りです。
- <$MTPublishCharset$>
- <$MTLink$>
- <$MTBlogUrl$>
- <$MTCGIPath$>
- <$MTBlogName$>
- <$MTCCLicenseRDF$>
不要なMTIfタグの除去
クリエイティブコモンズを利用するかしないか、トラックバックを利用するかしないか、コメントを利用するかしないか、などさまざまな条件分岐がテンプレート内に記述されています。
基本的に設定などは構築時に決めてしまうものであり、運用時に変更は行いません。
MTIfでの分岐も利用する設定で記述しなおすようにしましょう。
ログデータの削除
システムメニューよりログデータを見てください。
たくさんのログをたまっていると思います。
ログデータを削除することによりDBの負荷を軽減することが出来ます。
DBのアップグレード
Berkeley DBを利用している場合はSQLiteやMySQLへのアップグレードを、SQLiteを利用している場合はMySQLへのアップグレードを検討してみてください。
個人的な経験で言いますと
- Berkeley DBで1~200件
- SQLiteで5~600件
- MySQLで数百件~数千件
を超えると運営上ストレスを感じ出すのではないかと思います。
(共有サーバーでMySQLを利用する場合は、環境に依存します。)
PostgreSQLが利用できるような環境ですとPostgreSQLをお勧めします。
SQLiteに関してはSQLite2が利用できるようでしたらSQLite2を利用してください。
ダイナミック・パブリッシングを利用できるようになるなどの特典がありますので。
SQLiteやPostgreSQLの場合はバキュームを行う
SQLiteやPostgreSQLの場合、エントリーの削除などを行ってもデータが完全に削除されません。
(Windowsのゴミ箱のようなものだと思ってください。)
PostgreSQLの場合はphpPgAdmin、SQLiteの場合はTkSQLiteなどのツールを使ってバキュームを行うと劇的にDBが高速化されます。
参考:スパムで肥大化したMTのSQLiteファイルの領域をVACUUMで整理する
ダイナミック・パブリッシングに変更
SQLite2やPostgreSQL、MySQLの場合、ダイナミック・パブリッシングに変更すると再構築の必要がなくなります。
通常、Movable Typeはhtmlを生成して表示するというStaticと呼ばれる表示方法を採用しており、htmlを生成するのに再構築という作業が必要になります。
一方、ダイナミック・パブリッシングはhtmlを生成せずにDBから取得しhtml表示するので再構築の必要がなくります。
一般的にダイナミック・パブリッシングはサーバ負荷が高いとされていますが、MT4からはダイナミック・パブリッシングの手法としてキャッシュや条件付き取得が追加されています。
キャッシュ機能を利用すればサーバー負荷はほとんど感じないでしょう。
問題点としては、対応していないプラグインが多数あること。
(これが原因で素敵な機能なのに使えないケースが多いのが残念です)
EntriesPerRebuild を変更
すべてを再構築などの際にインターバルサーバーエラーが続出する人はmt-config.cgi内に以下の一文を追加してみてください。
EntriesPerRebuild 10
EntriesPerRebuildはエントリを再構築する際に1度に処理する件数を制御する設定です。
デフォルトですと50件ですので、これを減らすことにより再構築の時間は長くなりますが、インターバルサーバーエラーが出る確率はずっと減ります。
httpd.confのTimeout変更
サーバーのhttpd.confをいじれるようでしたらTimeoutの時間を変更しましょう。
Timeout 300
これによりサーバーがタイムアウトして再構築が終了することがなくなります。
以上
ほかにもなにか良い方法があったら教えてください。
関連エントリー
MTのカテゴリー操作 色々
MTで特定のカテゴリーのみテンプレートに反映させる方法
Movable TypeでSEO対策-metaタグ編-
MovableTypeにお問い合わせフォームを設置
MovableTypeにタグクラウド(SEO対策済み)を設置する
スポンサードリンク
«[書評]Web担当者 現場のノウハウ Vol.10 | メイン | [書評]Movable Type WEBデザインの新しいルール»