菊池高志

YSlow対策はサーバーにも優しい

2008-10-22 23:59:00

たびたびこのBlogにYSlowネタを書いていますが、先日ついに弊社サイトも一部対策を行いました。

今回行ったのは以下の三点。

  • 画像などのcache-control:max-ageに少し長めの時間を設定する
  • ETagヘッダを出力しないようにする
  • HTML, CSS, JavaScriptをgzipする

狙いは、gzipすることによりブラウザ側にキャッシュが無い時も少しでも早くページが表示されるようにすることと、cache-controlとETagの設定によりブラウザ側のキャッシュを生かすこと。

 

ブラウザ側から見ると、ブラウザ側にキャッシュが無い時の効果はあまり感じられませんが、一旦キャッシュに入って以降は結構サクサク感が出るようになりました。YSlowで測ると条件によっては時間が50%ぐらいになる時もあります。

  

で、何がサーバーに優しいかというと

  

cache-controlとETagの設定によりリクエスト数が大幅に減りました。リクエストの状況を調べると、ざっくり30%近くリクエスト数が減った感じです。さらに、トラフィックの状況を調べると、転送量が10%程度削減されています。これはgzipの効果もありますね。

 

PVは減らずにリクエスト数が減ってトラフィックも減るということは、httpdのプロセスが自由な時間が増える。つまり、サーバーの負荷が下がるのでサーバーに優しいということです。もちろん負荷が下がった分、必要なリクエストに答えられるようになるので、サーバー一台あたりの処理能力をさらに生かすことができます。

 

ちなみに、cache-control:max-ageだけだとHTTP1.1の有効なクライアントしかキャッシュを有効に使えていないので、今後はexpireヘッダを設定してHTTP1.0なクライアントのキャッシュを使うことや、キャッシュさせる時間をもっと長くできないか?gzipできるファイルは他にないか?などなど色々検討しつつ適用範囲を拡げていきたいと思います。

 

 

※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。