Movable Type 3.2 でメモリ不足でサーバエラーが頻繁する対策を少し探ってみた.EntriesPerRebuild 値を調整することで改善された.
「サイトを再構築」をインデックス,エントリーアーカイブ,...とひとつずつやっていくと,月別アーカイブ作成でエラーとなる場合が多い.これは多くのエントリーをまとめて処理するため,それに応じたエリアを一度に要求する MT 仕様によってきたるようである.そこで少しずつやる手だてはないかと,Google で探してみたら,あった.
mt-config.cgi という MT の動作カスタマイズ用 cgi スクリプトがあり,そこに EntriesPerRebuild なるパラメータがある.デフォルトは 40 である.エントリーアーカイブ作成などはこの数値ごとにまとめて処理されるようである.月別アーカイブ作成は,この数字を適当に弄って試した限りにおいて,これの 10 倍値ごとに束ねて処理されるようである.つまり標準値は 40 x 10 = 400.
いま現在,本サイトの記事数は 200 程度なので,この半分ずつ処理させるとして EntriesPerRebuild を 10 に設定したら,おおむねうまくいった.デフォルト値の 1/4 の設定であって,処理時間がトレードオフとなるのが想定される.が,背に腹は変えられない.
これでようやく,落ち着いて記事を登録できるようになったかと思ったら,カテゴリーアーカイブで引っかかる場合がある.これの分割はどうもできないのか.うーむ.ところで,このメモリ不足によるエラーが httpd-error.log には "Premature end of script headers" と出力されるのはどうも解せない.
MT の登録エントリー数が増えてアーカイブ作成でエラーが発生するようになって困っている方.EntriesPerRebuild 値調整は,それでも,お試しあれ.

Comments