現在レンタルしている「さくらのレンタルサーバ:スタンダードプラン」の、サーバー負荷軽減のため、あれこれと検証・考察を行っている真っ最中。

2009年11月中旬~12月中旬に行った様々なサイト改造が、サイトパフォーマンスにどのような結果をもたらしたか、Googleウェブマスターツールの「クロール統計情報」や「サイトパフォーマンス」などを利用して、サイトの分析を行いました。

計測対象

  1. 3DCGブログ(boktv.x0.com)
    2007年から同サーバで運用。当時は独自ドメインとか考えていなかったので、さくらのサブドメインで運営中。MovableTypeもこのドメインに置いてある。
    月間1万~2万PVほど。
  2. 別館ブログ(freesoft.tvbok.com)
    2008年8月からさくらで運用。現在のメイン。PCネタ。時々鬼の様にアクセスが集まる。
    月間60~80万PV
  3. バックステージ(web.tvbok.com)
    コツコツと自力で貯めたブログ・サイト運営のノウハウを覚書き。
    日記や雑記も含む。
    月間1万~2万PV。
  4. 健康ブログ(health.tvbok.com)
    持病の椎間板ヘルニアに関するメモ。
    月間のPV500~1000。
    アクセス数も少なく、NINJA以外で解析をしていない。今回対象外

全部同じサーバー、同じMovableTypeで運営中。
時々1日3万~4万PV集まり、「サイトが非常に重くなったり」「503連発する」のをなんとか防ごうという目的でスタート。

でも気が付くと目的が「YSlowでの評価アップ」にすり替わり、迷走しています(^_^;

まずは(主に)ここ5ヶ月の、ウチのサイトの「負荷増減」に関係ありそうな出来事をピックアップ。

昨年8月Livedoorブログからさくらのレンタルサーバーへ引越し。元々一つだったブログをカテゴリ毎に3つに分ける。そんな過去があり、「バックステージ」の過去記事の画像は(別館側と同じドメイン)に置いてある
7月末~8月中旬3DCGブログのテンプレート改造を行う。再構築を繰り返す。MTへの負荷は大きかったはず。
時間が掛かりすぎて途中で辞める。
夏休みと云う事もあり、アクセス•レコメンド数1割アップ
8月20日思い出せないけど、何かやっているかも。
9月8月まで、10月以降と比較してアクセスは1割少ない。
9月14日はてブ・Yahoo!のブックマーク数を取得、表示するようにした(12/13まで)
負荷が高くなって来たのでPHPを利用したレコメンド表示を中止。
10月中旬~末別館の数記事が続けてヒット。約10日ほど通常の1.5倍のアクセス
10月22日~Windows7発売に伴い、関連記事へのアクセスが増大。これ以降アクセス数2割アップ
11月11日css、jsファイルをgzip圧縮を行う。それに伴う.htaccessの変更。
11月11日BlastPNGcarmineなどを利用して画像の最適化を行い、転送量削減を狙う。
全サイトで実行
11月14日(php化した)htmlにExpires headersを付加。ob_start ("ob_gzhandler");の一文も入れて圧縮転送を開始。
11月23日css sprite、img spriteなどを行い、画像の転送量削減を狙う。
12月4日確かこの変でYahoo!の検索エンジンのアップデート。この前後はYahooからのクローラーが頻繁に訪れる
12月8日この日以降、サーバーの負荷を見ながら、画像ファイルにもExpires headersを付加したり外したり。
503エラーが頻発するので限定したディレクトリのみで実験中。
12月13日phpインクルード、object,iframeなどを多用していたサイト構造からの脱却を行う。

上表は、以下で表示している画像を見る参考に。
共用サーバーを使っているので、自分のサイト内の出来事だけで左右されるワケではないのですが・・・w

サイトパフォーマンスツールでの考察

サイトパフォーマンスツールを使うと、サイトの「平均ダウンロード時間」を表示してくれる。
これはHTMLだけでなく、各種広告・ブログパーツなどのiframe,javascriptなど全てを読み込み、表示するまでの時間。

ゴテゴテに飾ったページは当然表示完了までの時間が長くなる。

別館ブログ(freesoft.tvbok.com)

別館パフォーマンス
11月11日のcss、js圧縮は殆ど効果なし。
11月14日のExpires headersを付加(3日間のExpires)が効いて、ここから1週間かけて徐々にサイト表示時間が短くなった。
9月14日以降:はてなやYahooのブックマーク数を表示(画像データ取得)で1~2秒表示が遅くなる模様。
8月20日頃から表示速度が悪化しているのはなんでだっけ・・・思い出せない(^_^;

ポイント:HTMLにExpires headersを付加すると効果が大きい

バックステージ(web.tvbok.com)

バックステージサイトパフォーマンス
10月中旬の「別館ブログ大量はてブ登録」~「Windows7フィーバー」あたりで、サイト表示速度が大幅に悪化。同じサーバーなので連られて悪化したとも考えられるし、過去記事の画像が別館側にあるのが影響しているのかもしれない。

ポイント:HTML自体は別館ブログと同じパフォーマンスを示していると思われる。
表示時間が短いのは、広告・ブログパーツが少ないため。
他サイトのサービスを増やす(DNS参照数を増やす)とあっという間に表示時間は遅くなる。

3DCGブログ(boktv.x0.com)

3DCGブログパフォーマンス
MovableTypeを置いているドメインと同じ。
PHP化は行っていない普通のHTML。外部JavaScriptも殆どない。
なのでパフォーマンスは良いはず。。。
8月のパフォーマンスが悪いのは、多分サイトテンプレート改造でMTを酷使していたから?
11月20日あたりから、激重('Α`) 別館側でphpを使ったHTMLのgzip圧縮や.htaccessを使ったページ振り分けの影響が出ているのか・・・?

にしても、一番高速に表示されるはずのこのサイトが11月中旬以降、表示に平均10秒以上かかっているとは、、、謎。
自分で見る分にはこんなに重くないんだけどなぁ。。。
TOPページのRSSリーダーが悪戯しているんだろうか?

全体(というか多分MT)(boktv.x0.com)

全体のパフォーマンス
ルートにおいてあるウェブマスターツールからの解析情報。
恐らくGoogleがウチのMovableTypeにやってきてパフォーマンスを計測している(^_^;
11月前半が異様に負荷が高いのが全く謎。
11月10日~20日頃が異様に軽くなっているのが少し謎。
11月20日頃から重くなっているのは、恐らく別館でphpを酷使しているから。
ここの数値が5秒以上になっていると、503エラーが頻発するようです。

ポイント:
11月10日~20日の間というと、
「css、jsファイルをgzip化」 以降
「PHP化したHTMLでExpires headersとgzip処理する」 以前
このの間かぁ。。。
過度のパフォーマンス最適化は無理っぽいな。。。


クロール統計情報からの考察

こちらはパフォーマンスツールと違い、純粋にHTMLだけのパフォーマンスが計測される。
広告やブログパーツ類などのjavascript、他にはスタイルシート、iframe、objectなど、外部ファイルは一切参照されない。

別館ブログ(freesoft.tvbok.com)

別館クロール
11月14日から一気にGoogle Botのダウンロード量(サイト的には転送量)が減少。
11月末~12月初旬にダウンロード時間が掛かっているのは、多分Yahooのクローラーが頻繁にアクセスする時期で、サーバーに負荷が掛かっていたから。

HTMLのgzip化しても、ダウンロードにかかる時間は少ししか変わっていない。
画像にExpires headersを付けた辺りでは、特に効果は表れていない。サーバーに余分な負荷を与えているだけか・・・('Α`)

バックステージ(web.tvbok.com)

バックステージ統計情報
こちらは11月14日にHTMLに2時間ほどのExpires headers付加と、Gzip圧縮を付加。
転送量の削減はそれなりに効いている。
パフォーマンスツールと違い、「ダウンロードにかかる時間」は別館と同等(こちらが少し早いのは、1ページあたりの情報量が1/3程度なため)

ルートディレクトリ統計情報

3DCGブログは個別にサブドメインを取得していないので、MTを置いているメインドメインと一緒に計測。

ルート統計情報
11月中旬にダウンロード量が一時的に増えたのは、恐らく画像を全部置き換えたから。
12月初旬にダウンロード時間が増えたのは、恐らくYSTアップデートによるYahooクローラー絨毯爆撃の影響でサーバーパフォーマンスが低下していたから。

独自ドメインを取っている別館・バックステージと違う挙動を見せているのも面白いね~。
「サイトパフォーマンスツール」で最近悪化しているのは、何が原因なんだろ('Α`)

・・・・・あ、3DCGブログだけ、検索にMovableType使っている。
タグクラウドもMovableTypeのCGIだ。。。
この辺が悲鳴を上げているんだな('Α`)

。。。。たぶんそうだ。。。。

あとがき

サイトパフォーマンスを上げるのは、バランス考えるのが難しいですね。

負荷を「分散させる」・「集中させるの」のさじ加減って経験則に頼らなきゃダメなのかな?

もう少しだけ観察して、サーバーに一番負担の少ない方法を選択するつもり。