公開設定を見直してMovableTypeの再構築を高速化する

Posted by
ぴろり
Posted at
2009/01/19 22:36
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
MovableType カテゴリ

 MovableType 4.2 (4.1 だったかも)になって、アーカイブ毎に構築方法を個々に設定できるようになりました。この構築方法を適切に設定してやることで、MovableType の再構築にかかる時間を短縮することができます。このエントリではその設定方法と具体的な判断基準をまとめてみたいと思います。今まで再構築が遅くてイライラが募っていたユーザの方は是非試してみてください。

このエントリーをはてなブックマークに追加  

構築オプションについて

 個々のテンプレートの編集画面にある「テンプレートの設定」をクリックすると現れる「公開」セレクトボックスで、そのテンプレートの構築方法を指定することができます。MT3.x からバージョンアップされたユーザは、標準でここが「スタティック」に設定されているはずです。各設定項目についてはブログの公開プロファイルに詳細があるので、そちらを参照してください。ここでもそれぞれの構築オプションについて簡単にまとめておきます。

スタティック(規定)
 エントリが公開/下書きに変更されたり、コメントが投稿されて公開されたり、トラックバックを受信して公開される時に、自動的に再構築が行われます。(コメントの投稿やトラックバックを受信するだけでは再構築されません。あくまで公開される必要があります)
公開キュー経由
 再構築の動機はスタティックと同じですが、その場では再構築されずに、「再構築すべし!」というマークが付けられます。そして次にrun-periodic-taskが実行されたタイミングで再構築が行われます。
ダイナミック
 静的ファイルを作らずに、リクエストの度にデータベースへ問い合わせを行います。高速ですが負荷に弱いです。
手動
 ユーザが明示的に再構築を指示しないかぎり再構築されません。

 MovableType の再構築で待たされる要因のほとんどは、スタティックなテンプレートの構築に費される時間です。いかに再構築を高速化するかということは、すなわち、いかにスタティックなテンプレートを使用しないか、という一言に集約することができます。

構築オプションの選択

 では具体的に、どういうテンプレートの場合に、どういう構築オプションを選択すればよいのでしょうか。簡単な判断規準を以下の表にまとめてみました。これによると、スタティックであるテンプレートというのは、実際にはごく限られたものだけに絞ることができます。

更新頻度:高い更新頻度:低い
即時性:高いスタティック/ダイナミック手動
即時性:低い公開キュー手動

スタティック/ダイナミック

 個別エントリアーカイブやウェブページではスタティック/ダイナミックパブリッシングが最適です。編集内容を確認したり、投稿されたコメントや受信したトラックバックを即座に反映する必要があるからです。また、例えばこのサイトの左サイドバーのように、最新コメントや最新トラックバックを一覧表示する場合にも使用します。また、RSS リーダーのためのフィードも即時性を求められることからスタティック設定にしておきます。

公開キュー

 カテゴリアーカイブや月別アーカイブなどは、記事が投稿されたからといって、即座にそれを反映するような必要性はあまりないと思われます。次回に run-periodic-task が実行されるまでの高々 1 時間程度の間、最新記事が掲載されないといった程度問題であったりします。このサイトの場合、トップページも公開キューで再構築を行っています。コメントがあると、コメント数が即座に更新されないという点はありますが、あくまで程度問題です。意外と重い処理になるアーカイブの作成をキューに回すことで大きく高速化することができます。

手動

 ほとんど更新されることのないファイル、例えば JavaScript や CSS などのファイルがスタティック設定になっていることがままあります。スタイルを調整するなどのタイミングで構築されればよいだけなので手動にしてくのが最適です。

このエントリーをはてなブックマークに追加  



関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。