FastCGI導入 (2012年1月29日)
昨年末Movabletype5に変更して以来、だいぶチューニングが進んでとにかく、再構築の時間だけはかからなくなって良かったのですが、そうなると管理画面の表示の遅さが気になってきます。で、FastCGIの導入することになりました。
FastCGIはMovabletypeの公式サイトに導入の仕方が書いてあるのでうちの自宅サーバ、CentOSの環境ではまんま、やることで難なく導入でき、管理画面での動きは体感できるほど早くなって良かったのですが(おまけでエントリータグの表示やコメントのCapcha画像の表示まで早くなりました。)、問題が潜んでいました。
再構築の際、これらの早くなったのですが、インデックステンプレートだけが500エラーをはき出すのです。まあ、記事の投稿や修正時にも出るので、いろいろ大変なのです。調べたのですが、どうにもなりません。いったんFastCGIをやめようかと思いましたが、出力データを見るとどうもサイトマップと検索窓用のデータファイルで詰まっている模様。試しでそれらのファイルを除いてインデックステンプレートを再構築すると成功します。どうやらこれらの長いファイルを再構築する際にタイムアウトになっているみたいです。FastCGIの設定ファイルをいじればなんとかなると思うのですが、いかんせん公式サイトは英語だし、適当な解説サイトも見あたらない。どうしたものかといろいろやってたのだけど、なかなか上手い対策が思いつかなかったのでした。
そこで、目にしたのがテンプレートの「公開」にある「公開キュー」。cronで時間をしてしてやってバックグランドで再構築をかけるって奴です。サイトマップと検索窓用のデータファイルそれぞれ単独なら再構築出来る事は確認できていたので、これをバックグランドで処理しちゃえば、とりあえず記事投稿時やインデックステンプレートの再構築時にエラーは出ないでしょうって事で早速、cronに登録してみました。結果は・・・成功です!!ちゃんとバックグランドで再構築されていました。おまけにサイトマップと検索窓のデータファイルをはずしたことで、記事の投稿時の時間が1分30秒くらいかかっていたのが、30秒弱に縮まりました。FastCGIの恩恵もあるのでしょうが。
その後、サイトマップはそんなに再構築しなくて良かろうと手動にしておきました。
ちなみにcronの設定方法は公式サイトのまんまで出来るのですが、一つ注意点が「tools」配下の「run-periodic-tasks」ですが、パーミッションを実行ファイル(755や705)にしておかないとcronが実行されてもMovabletypeの方が動かず、何も実行されないのです。この辺に言及してあるのが無かったので、しばし迷いました。
今回のMovabletypeチューニングはこの辺でひとまず終了です。
で、続き。すでに投稿されたモノの再構築なら上に書いたようなことでも大丈夫だったのですが、記事のエントリーだとまた500エラー。mt-config.cgiのEntriesPerRebuild設定が大きすぎるのかもしれないが、せっかく公開キューを覚えたことだし、インデックステンプレートとスマホ用のインデックステンプレート、アーカイブ以外は公開キューで公開することにしました。上手くいくといいねえ。
ちなみに公開キューで使うrun-periodic-taskは実行することによって、データベースを掃除してくれる機能もあるらしいので、公開キューや指定日投稿を使わない人でも設定しておいた方がいいみたいですぞ。
この記事のタグ: CentOS, MovableType
Wrote by ぷー /コメント (0)
コメント
コメント記入欄