アクセス数の増加とサイト表示をphp(サーバー側でプログラムを実行する技術)に頼っている事が原因で、このサイトの503エラーが増えて来ました。

503
▲今月が半分過ぎた所でこの状態。503エラーが4200回出ています。

先月中旬のサイト改造で、転送量が格段に減りました。先月末のサイト改造で、サーバーへのリクエスト数も格段に減りました。
これにより表示速度自体は格段に速くなったのですが、、、
一部のphpファイルに処理をまかせすぎるとダメなんでしょうか(^_^;

多分30~40人が一度にアクセスすると、サイトは高速に表示されているのに一部ファイルのみが過負荷で503エラーを吐いているように見えます。

夜21時~24時頃は、時々サイトの一部が表示されなくなったり、表示にとんでもなく時間がかかる事があるかもしれません。ご容赦ください。

と、いう事で

表題通り、サイトのテンプレートを少しだけ改造しました。
サイト表示を極力スムーズに行うためのカスタマイズですので、見た目は殆ど変わっていません。

ブックマークボタン
▲見た目で変わった部分はコレくらい。

外部ブログパーツに頼っていたブックマーク用Clipボタンのみ、自作javascriptのものに置き換えてみました。表示の崩れなどなく、リンクも正常に作動していますでしょうか?

主な改造内容1

内部構造的なお話をすると、php includeやiframe,objectなど、サーバー内でのファイル参照しまくりな状態からの脱却を目指しました。(includeを必要最低限に減らしただけ)

これはサーバーの負荷を軽減するためです。

主な改造内容2

.htaccsess、phpの記述を出来るだけ簡素にした

if構文はCPUにかかる負荷が大きいだろうと勝手に考え、if文(.htaccsessではRewriteCond)を出来るだけ減らす方向で、そして特定の.htaccsess、phpへの一極集中を防ぐ形で改造してみました。(この考え方が正しいのか間違っているのか、全く自信なし)

先月のサイト改造で、
  1.htmlをgzip圧縮できるようにした
  2..jsファイルや.cssファイルに別途gzipを用意してそれを読み込ませるようにした
  3.htmlファイルにExpires headersを付加。一部画像にもExpires headers付加
などなどを行い、転送量、サイトへのリクエスト数、サーバーのCPU使用率などなど一律低減したのですが、、、、

これが原因でルートディレクトリの.htaccsessや一部phpに負荷が集中しやすくなったみたいです。
結果、表示はそこそこ速いのに最大瞬間風速にとても弱いサイト構造になり、現在の503エラー多発に繋がっているっぽい。

負荷分散の為、.htaccsessやphpをディレクトリ毎に記述し、それぞれに特化した簡素なものに書き換えてみました(今まではルートディレクトリにif文たっぷりな重いプログラムを置いていた)

これについては、「様子を見ながら」状態。
効果がありそうなら徐々に分散させて行くし、悪化しそうなら元に戻す予定。

主な改造内容3

外部javascriptの遅延ローディング

本当に時々なんだけど、「とんでもなく重くなるブログパーツ」を出来るだけ後からロード・実行したくて目下勉強中。

window.onloadとか、IT戦記さんの動的スクリプトローディングとかで頑張ってみるけど、素人レベルの知識では未だまともに動きません(^_^;
金曜~日曜の3日間かけて頑張って書いてみたのですが、やっぱり読み込み終了するまで表示の途中で引っかかる。

またたっぷり時間が取れる時に頑張るつもり。

今後どうするか?

土日などアクセスの多い日の夜21時~24時頃は、運営に利用しているMovableType自体が503エラーになるのが痛いです。サイト更新、コメント・トラックバックがまともに動きません(^_^;

今後も503エラーが連発する場合は

  1. 画像に発行しているExpires headersは全て外す。
  2. サイトへのコメント・トラックバックを全て禁止に
  3. cgiで作動させている携帯用サイトを閉鎖する
  4. レンタルサーバーを上位プランに移行する

くらいしか思いつかない。
やりたくない項目ばかりだけど、上記から1~2個は実行しないと、根本的な解決には向わないみたいです。