再構築のすすめ
Movable Type Advent Calendar 2015の24日目、でした(登録したことをまっーーたく覚えてませんでした、すみません。
そんなわけで静的出力至上主義派の私から再構築の時間を短縮するための超基本をささっとクリスマスプレゼントします。
再構築とは
MT ユーザは皆知ってる再構築をおさらいしておくと。
このページなど登録したデータを、テンプレートの内容を元に、HTML ファイルなどのファイルを出力するための機能・操作が再構築です。
データの更新やテンプレートの変更をサイトへ反映させるには再構築が必要です。
操作を行うとファイル出力が終わるまで待たされるのも再構築の醍醐味、帰るまでが遠足、待ち時間もデート、みたいな
ものですが、短時間で終わることに困る人はいないと思います。
勝利の鍵はテンプレート、だけど
再構築の時間もパフォーマンスもテンプレートの内容や設定に大きく影響を受けます。
そのためテンプレートの工夫次第で、時間を短くできますが、それにはテンプレート構築のテクニックが必要になるため誰でもとはいきません。
今回はテクニックが必要ないかんたんな設定を紹介します。
検証した環境
今回はこのブログのデータを使いました。
再構築にかかった時間は、再構築ウィンドウに表示されるものを確認しました。
Movable Type Pro | 6.2.2 |
---|---|
記事 | 961件 |
ウェブページ | 0件 |
アイテム | 10件 |
テーマ | 自家製 |
サーバーモデル | CGI |
設定変更前のベース
この時間がどれだけ短くなるか見ていきます。
45式::雑記を再構築しました。 処理時間: 15 分, 8 秒
いらないテンプレートをポイする
テンプレートの中に必要ないもの、何らかのテストに使ったテンプレートなどが残ってませんか?
必要ないテンプレートからファイルを出漁するのは無駄だと思います。
そういうテンプレートは、バックアップしてから、思い切って削除するか「公開しない」設定へ変更しましょう。
変更はテンプレートの編集画面で行えます。
このブログにはそういうテンプレートがないため実施できませんでした。
更新頻度の低いテンプレートを手動へ変更する
テンプレートの中には CSS や JavaScript などもページ以外のものを出力している場合もあると思います。
そのテンプレート、毎回更新する必要がありますか?
毎回更新する必要がないものは「手動」へ変更しましょう。
手動へ変更するとテンプレートの一覧か編集画面からしか再構築できないようになり、再構築ウィンドウから操作した場合の対象から除外されます。
このブログには CSS を2つ、JavaScript を1つ、出力するテンプレートがあったので「手動」へ変更しました。
が、全く効果が見られませんでした。
しょぼいファイルを出力しているのでボトルネックになっていなかったようです。
環境変数 EntriesPerRebuild
EntriesPerRebuild は1回の再構築で処理する記事の数を設定できます。
mt-config.cgi に未指定の場合、初期値は 40 です。
この設定はサーバに負荷をかけることもありますが、現在のサーバはかなり安定していて余裕もあるので思い切って 1000 を設定しました。
EntriesPerRebuild 1000
mt-config.cgi へ設定したあとの再構築の結果は、思った以上に効果がありました。
45式::雑記を再構築しました。 処理時間: 11 分, 3 秒
環境変数 RebuildOffsetSeconds
RebuildOffsetSeconds は再構築時のタイムアウトを防ぐためのリクエスト間隔を設定できます。
mt-config.cgi に未指定の場合、初期値は 20 です。
現在のサーバはタイムアウトの設定をだいぶ延ばしているので、思い切って 300 を設定しました。
RebuildOffsetSeconds 300
mt-config.cgi へ設定したあとの再構築の結果は、思った以上に効果がありました。
45式::雑記を再構築しました。 処理時間: 9 分, 50 秒
設定前は効果があるのか半信半疑でしたが、少しだけ効果が出ました。
ちなみにこの RebuildOffsetSeconds ですが、EntriesPerRebuild を初期値のまま設定しても全く効果が見られませんでした。
なので RebuildOffsetSeconds は EntriesPerRebuild とあわせて変更するのがよいと思います。
モジュールのキャッシュ「再構築の速度向上のために、テンプレートモジュール毎のキャッシュ設定を有効にする」
ウェブサイト/ブログの全般設定画面に「モジュールのキャッシュ」という設定があります。
この設定を有効にするとテンプレートモジュール毎にキャッシュの設定ができるようになります。
キャッシュの設定はサイトによって異なると思いますが、とりあえず今回は設定をオンにするだけで結果を見てみました。
45式::雑記を再構築しました。 処理時間: 4 分, 36 秒
んんんん、テンプレートモジュールでキャッシュの設定をしていないのに、かなり効果が出ました。
もう少しこの設定について調べたいところですが、とりあえず今回は効果があった結果として記載します。
もし選択できるなら SSD
もう検証ができないのですが、再構築時間の短縮に効果があるものとして SSD の利用があります。
現在、私はさくらの VPS の、 SSD を使っています。
SSD の前もさくらの VPS を利用していましたがその頃は HDD で、再構築に 20 分近くかかってました。
そこから SSD に移行しただけで 2/3 ぐらいに時間が短縮されました。
ディスク I/O は早い方が再構築時間の短縮に繋がるようですので、選択できる場合には SSD を選択することをおすすめします。
今回検証しなかったもの
下記については高速化の手段ではありますが、再構築に特化したものではないので今回は検証しませんでした。
- MySQL のチューニング
- PSGI の導入
効果がなかったもの
下記についても検証しましたが再構築時間を短縮する結果は見られませんでした。
- Memcached の導入
それではまた来年お会いしましょう。
コメント[0]
コメント投稿フォーム
コメントを投稿するにはJavaScirptが必要です。ブラウザのJavaScriptを有効にしてください。
トラックバック[0]
トラックバックはまだありません。
コメントはまだありません。