キャッシュを利用して再構築を高速化する MovableType プラグイン:KeyCached

Posted by
ぴろり
Posted at
2007/09/18 16:41
Trackbacks
関連記事 (0)
Comments
コメント (17)
Post Comment
コメントできます
Category
プラグイン カテゴリ

 MovableType のテンプレートが肥大化・複雑化すると、その再構築に要する時間やサーバ負荷が増すことになります。しかし実際のテンプレート中には、再構築によってその内容が変化しない部分が少なくありません。そのような部分については毎回々々構築を行う必要はなく、前回に構築された結果を流用することによって、テンプレート全体の再構築に要する時間や負荷を軽減できると期待できます。

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

 テンプレート中の任意のブロックを再構築するか否かの判断が、一つ以上の値に依存しているとします。単純な例を挙げると、前回の再構築から記事の最終更新日が変化していないのであれば、<$MTEntryTitle$><$MTEntryBody$><$MTEntryMore$> などのテンプレートタグのみを含むブロックは再構築の必要がありません。そのようなブロックには前回の再構築のタイミングでキャッシュされていた内容を流用することで、これらテンプレートタグの構築処理を省略することができます。
 ところで <$MTInclude module="..."$> は、テンプレートをモジュール化しているだけなので、モジュールに含まれるテンプレートタグの再構築を省略することはできません。一方、KeyCached ではテンプレートタグを一度構築した結果をキャッシュとして保存し、次回以降の再構築の際にテンプレートタグを解析・構築する替わりに、保存されたキャッシュを利用するため、その部分の再構築処理の一切を省略できる点が異なります。

<MTKeyCachedKey>
<$MTEntryModifiedDate$>
</MTKeyCachedKey>

<MTKeyCachedValue>
:
このブロックを再構築すべきか否かの判断は <$MTEntryModifiedDate$> に依存しています。
つまり、前回の再構築以降に記事が更新保存されていた場合にのみ再構築されます。
更新されていない場合、このブロックは再構築されず、前回の構築結果が使われます。
:
</MTKeyCachedValue>

KeyCached の効果

 ブログの検索結果ページ全体を KeyCached を用いて高速化した場合の効果を測定してみました。MovableType の検索機能は、検索の度に内部で構築処理が行われているため、キャッシュの恩恵が大きく現われます。検索結果は検索文字列にのみ依存しているものとします。実際には記事が追加/編集/削除されることを考慮する必要がありますが、とりあえずキャッシュの有効期間を短くすることで対応することにします。

<MTKeyCachedKey>
<$MTSearchString$>
</MTKeyCachedKey>

<MTKeyCachedValue>
:
検索結果ページ全体の HTML とテンプレートタグ
:
</MTKeyCachedValue>
#min [ms]mean [ms]max [ms]total [s]
KeyCached 無し
12,4542,8443,65728.45
22,6112,8563,34228.57
KeyCached 有り
18241,1972,11711.98
28851,3141,71113.15

さくらインターネットのレンタルサーバで稼動しているMTに対して、計測には Apache Bench を使用しました。ab -n 10 -c 1 <URL>

ダウンロード

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


この記事を読んだ人はこんな記事も読んでいます記事リコメンデーションについて

カバー画像:データベースを最適化して MovableType の再構築プロセスを高速化できるかも?

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

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

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

寄せられたコメント (全 17 件中、最新 5 件まで表示しています)

Posted by
ぴろり ◆OLEEi.VOX.ぴろり ◆OLEEi.VOX.
at
2010/03/03 18:45
ID
wXQLJVEI
ををを、ご寄付ありがとうございます!!
ダウンロードは以下のURLから可能です。どうぞご利用ください。(ややこしいですね)
http://lab.magicvox.net/trac/mt-plugins/changeset/135/KeyCached/trunk?old_path=%2F&format=zip
Posted by
杉原 広夫杉原 広夫
at
2010/03/03 18:40
ID
b8DAvZL.
「KeyCached」をダウンロード、したいので寄付をしたのですが、ダウンロードできません。どうすれば良いでしょうか。
Posted by
せんのじせんのじ
at
2008/09/02 08:59
ID
IKSwl5Ak
確認ありがとうございます。
早速落とさせていただきました。
素晴らしいプラグインをどうもありがとうございました!
Posted by
ぴろり ◆OLEEi.VOX.ぴろり ◆OLEEi.VOX.
at
2008/09/01 12:52
ID
wLSUWaUw
申し訳有りません。サーバが不調でした。現在は接続できると思います。
Posted by
せんのじせんのじ
at
2008/09/01 11:52
ID
4fkf6.cA
初めまして。
再構築の重さにうんざりしており、
こういうプラグインをずっと探していました。
早速利用させていただこうと思い、
KeyCached の Trac リポジトリ
( http://lab.magicvox.net/trac/mt-plugins/wiki/KeyCached )
を開こうと何度も試しているのですが、なぜか繋がりません。
上記URLをクリックするだけでは入れないのでしょうか?
ご多忙とは思いますが、よろしくお願いします。

コメントを投稿する

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