246Gallery

バイク、F1やクルマ、音楽やギター、カメラやガジェットの話題を日々お届けするブログ

ウェブ

[246]ログが限界にorz いろいろやった記録

本ブログは某レンタルサーバーとMovebletypeで運営しております、246g.comですが、この[246]ログの更新がままならない状況に陥ってるんです。

具体的にいえば、記事の投稿でサーバーエラーになるのです。

これまで対策して来たので一応メモ

まず、昨年の夏くらい、全ブログの総記事数が10000を超えたあたりで、MTの更新画面で記事を投稿すると、もうやたらと時間がかかり、タイムアウトになるという現象が発生しました。(以前もあったんですがね)

対策1.古い記事を、別ブログに待避する。

[246]ログの古い記事をエクスポートして、別のBlogにインポートしました。
記事数が減ることによって再構築の負荷が少なくなると考えました

例えば2007年の記事だけ纏めたのがこちら⇒https://www.246g.com/log246/2007/
出来るだけパーマリンクは崩さないように、/2007 ディレクトリの下に新しいブログを構築しました。

結果△.対策する以前投稿時のエラーが100%出ていたのが、50%くらいになりました・・・・・

しかし、それでも今年に入ってページの再構築エラーがでまくっちゃうようになりまた

対策2.ブログのページ構成をシンプルにする

2?1.サイドバー3つからサイドバー2つにする

Movabletypeのディフォルトテンプレートは、2サイドバーと3サイドバーがいつでも切り替えられるようになっています。
3サイドバーを使うと、ウィジットセットを2回呼ぶようになるので、構築時の負荷が増えると考えました。
そこでサイドバーを2つにして、構築時の負荷を減らすようにしました。
加えて対策3も↓

2?2.テンプレートのIncludeを極力減らす

Movabletypeの良いところに、ブログ毎のテンプレートや、グローバルテンプレートをウィジットとして定義することで、Include出来るようになります。しかしIncludeが増えると再構築時に負荷になるそうなので、例えばサイドバーなどに表示させる複数のウィジットを纏めてみました

結果△?×、ほんの少し構築時のエラーが減ったかなー・・・っていうくらいで、あまり効果はありませんでした。だた、塵も積もれば山となるという意味では必要だったと思います。

とかなんとかやっているうちに記事も増えるにしたがって更にエラーが頻発するように・・・

対策3.サポートに電話する

俺:「あの、Movabletypeの記事投稿で最近エラーになるんですが、なんとかならないんですか?」

サポ:「個別にインストールしたものは、アプリケーション側に問い合わせてください」

俺:「では、サーバーが過負荷になっているとか頻発していませんか?ログ調べてくださいお願いします」

サポ:「確かに、常に負荷は高いですが、過負荷まで行っている状態は少ないようです。」

orz

結果△ 気のせいか、電話を掛けた翌日あたりから、エラーが少なくなったような気がします。コッソリなんか対策してくれたんですかね?w

しかし、半月くらいしたらまたエラーが頻発するようになりました

対策4. cronによる、指定時間投稿にする

mt.cgi経由でポストしたらエラーになるのなら、バックグランドで再構築するように、cronによる投稿にしてみました

/tools/run-periodic-tas をcronで走らせる設定です

結果◎ですが とにかく記事はさくさく書けるようになりました
cronの指定時刻通り、投稿した記事が反映されるようになったのです。

しか?しっ投稿の方法を変えただけで根本的には何も解決していないですよねorz

対策5.データベースの最適化してみる

phpMyAdminから、MySQLの各テーブルの“オーバーヘッド”がある場合、最適化することが出来ます。

image

 

結果×?△ 体感無いなぁw でもDBのメインテナンスは必要ですね!

対策6.MySQL4.0をMySQL 5.1にバージョンアップする

4.0だったんですねorz
Webで調べると、4.0から5.1にバージョンアップするだけで少しパフォーマンスが向上するようなので、やってみました。

ただレンタルサーバーという制約のある環境の中で5.1にするにはかなり苦労しました。
このレンタルサーバーでは、DBを1つしか作ることが出来ません。しかもバージョンアップするには、一旦4.0のDBを削除!してから、5.1を指定して新規DBを作る必要があるのです(勿論空ですよ)。その後移行ツールや環境は準備されておらず、全てユーザの手作業となります。
いったんDBを消すなんて、あまりにもキケンです。
そこでここだけの話ですが、同じホスティング業者のお試し期間を利用して、別アカウントを取得、予行演習&バックアップした上で、実行しました。

案の定、phpMyAdminから書き出した移行用SQLの文字コードが違っていて、そのままやると失敗するすることだったです!
MySQLのログイン画面で日本語文字コードを指定していなかったのが、原因であることを突き止めるまでかなり時間がかかりました。
また、インポート先でSQLファイルのサイズ制限があるので、DBごと1回でインポート出来ませんでした。テーブル毎にエキスポートして分割しました。

結果△ 確かに、管理画面のログインなどは早くなったけど、再構築エラーが亡くなったわけでは無い・・・・

で、そんなこんなの対策で、ビミョーに投稿出来ていたんですが、とうとう、今日っていうかついさっき、cronによる指定時間投稿でも、ページが更新出来なくなってしまいました・・・・orz

対策7.Movabletypeのダイナミックパブリッシング機能を使う

Movabletypeにも動的生成が選択出来ますが、全てのページをいきなりダイナミックパブリッシングに変更するのは、なかなか勇気が必要です。

なので、トップページと記事毎ページはスタティックページのままにして、その他をダイナミックパブリッシングにしましたが・・・・これはかなり苦労しましたね。

レンタルサー

バーの仕様で、Movabletypeが吐き出す.htaccess がInternal Server Errorを引き起こします。
また、一部ページのみダイナミックパブリッシングにするにはコツが入るようです。
ここで書くとあまりにも長くなるので別途・・・・

結果○?△ 確かにエラーの確率は減りました。でもま完全に無くなりません・・・・

対策8.Windows Live Writer を使う

mt.cgi経由や、cronによる  /tools/run-periodic-tas 経由の投稿もダメなら、XMP-RPC経由で投稿する、外部エディタです。
そこで、Winなら無料で使える、Windoes libe Wrtiterを使ってみました

結果○ とにかく記事は書けるようになりました。。。いや、なった筈です、なぜならこの記事がその証拠だから。

しかしそのうち Windws Live Writerでも記事の更新が出来なくなる日は近いような気がしてなりません・・・・・

どうしよう・・・・・

対策案A.ホスティングサービスを変える

ですがっ現在のホスティング業者は、かなり評判の良い業者です・・・・
単に、ホスティング先を変更したからと言って、更に悪化するという最悪のシナリオも考えられます。
となると、よりお金を払って、高額サービスプランに移行するしかないのかなぁ・・・・

それよりも、サーバー全体のお引越しが面倒過ぎる!w

対策案B.Movabletypeから他のブログツールに変える

勿論、Wordpressかなぁ。。。。。

っていうか、ホスティング変更するよりも、面倒杉!

というこことで、早いうちに結論をださないと困ったことになりそうです・・・・って実際崖っぷちなんですが。

 

某ホスティング業者様、この記事見ていたら、なんとかしてやってください!お願いしますorz