« 朗報?Microsoftとの提携Ubuntu断る | メイン | MovableType4ベータ3。日本語対応強化 »

MovableTypeの再構築高速化 SSI化してみた

WordPressへの移行をぼちぼちと進めているこのサイトですが、やはり使い慣れたMovableTypeも捨てがたい物があり、それほど新しい話題でもないのですが、SSIを利用してページを動的に生成することで再構築の高速化をしてみました。

このブログの場合、以下の動的な要素がページ内にあります。

  1. 最近のエントリーの一覧
  2. カテゴリーのリスト
  3. タグ(タグクラウド)
  4. (月別)アーカイブのリスト

 これらが毎回再構築されるはとても無駄なので、インデックステンプレートにそれぞれのパーツをhtmlファイルに書き出すテンプレートを作成して、エントリやアーカイブのテンプレートで<!--#include virtual="/hoge.html"-->とすることで、再構築時間を短縮出来るはずです。

例) インデックステンプレート: monthlylist.html

<ul class="module-list">
 <MTEntries lastn="12">
  <li class="module-list-item"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
 </MTEntries>
</ul>

これを各テンプレートで<!--#include virtual="/monthlylist.html"-->として読み込みます。同じようにして他の動的要素もhtmlファイルに書き出すようにします。

計測すると300エントリ強の再構築が約35秒となり、3-4倍程度の高速化となりました。かなり快適です。もちろんSSIなのでページ表示毎の負荷は増えますが、アクセス数がたいしたことないので、問題ないことにします。

どうしてもサーバ負荷を減らしたい向きには、

  1. 動的要素をなるべくまとめて、SSIでインクルードするファイル数を減らす
  2. おそらくアクセスが最も多いであろうトップページだけはSSI化しない
  3. mod_cache - Apache HTTP サーバを使う
等の対策がありそうです。

もう一つ大きな利点ですが、動的要素をSSIで読み込むことにより、再構築の必要性自体がほとんどなくなるということがあります。ざっと見た限り、再構築の必要のあるものは全て新規エントリの作成時に更新されるようです。MovableTypeは4でGPLライセンスにもなるようですし、もしかして、再構築だけを理由にはWPに移行する必要はないかも。。。

トラックバック

このエントリーのトラックバックURL:
http://blog.browncat.org/cgi-bin/mt/mt-tb-abc.cgi/348


コメントを投稿

(お書きになったコメントはすぐには表示されません。ご了承ください。)


About

2007年06月20日 19:16に投稿されたエントリーのページです。

ひとつ前の投稿は「朗報?Microsoftとの提携Ubuntu断る」です。

次の投稿は「MovableType4ベータ3。日本語対応強化」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

           

カテゴリー

Powered by
Movable Type 3.36

Twitter


最近のエントリー

デル株式会社ads

注目エントリー