Web系のこととかー。

Google謹製Apacheモジュール「mod_pagespeed」

mod_pagespeedをテストサーバに導入してどれぐらいのパフォーマンスが出るものなのか検証してみました。

mod_pagespeedの効果

mod_pagespeedは、サーバを高速化するのではなく、出力するHTMLを高速に表示できるよう書き換えるモジュール。つまり、サーバが頑張って、ユーザの体感速度を向上させる。

  • 外部CSSファイルの連結
  • 外部JSファイルの連結
  • CSS・JavaScriptのminify(最適化)
  • CSS・JavaScriptの一部HTMLインライン化
  • その他の画像はEtag Cache-control付きの画像に書き換えられる
  • ファイルサイズの小さい画像は data URI scheme(base64)
  • 画像の幅・高さ自動調整(これは、大きい画像を無理やり小さく表示している場合など?)
  • ホワイトスペース・コメントの削除
  • headタグの整形
  • HTMLの整形
  • 余計なクォーテーションを削除
  • スクリプト無効(実験用ステータス?)

他にも細かい機能があったと思うけど、ほぼ関係ないので割愛。

計測条件

  • ローカルサーバに、HTML+画像+CSS+JSのみの構成(PHPやDBなどサーバ側の要素をなくすため)
  • 外部ホストCSS/JSは読み込まない
  • Firefoxは、Firebugによる計測/Chromeは、デベロッパーツールにて計測
  • InternetExplorerに関しては、Fiddlerによるコネクション時間計測のみで、レンダリング速度は入っていない
  • 10回読み込んだ平均秒数

テーブルレイアウトの場合

  • 基本、テーブルレイアウトの前時代なページ
  • 外部CSSは1ファイル
  • 外部JSは4ファイル(jQueryなどのライブラリ)
ブラウザ 通常 通常(キャッシュなし) pagespeedあり pagespeedあり(キャッシュなし)
Firefox 2.55sec 5.87sec 2.89sec 2.84sec
Chrome 1.74sec 5.87sec 2.89sec 2.84sec
InternetExplorer 1.21sec 1.70sec 1.01sec 1.35sec

レンダリング速度は、遅くなることがほとんどだった。

CSSレイアウトの場合

  • 基本、CSSでレイアウト
  • 外部CSSは4ファイル
  • 外部JSは4ファイル(jQueryなどのライブラリ)
ブラウザ 通常 通常(キャッシュなし) pagespeedあり pagespeedあり(キャッシュなし)
Firefox 2.33sec 3.50sec 1.06sec 1.78sec
Chrome 1.63sec 2.04sec 1.22sec 1.16sec
InternetExplorer 1.17sec 1.31sec 0.99sec 1.25sec

安定して速度の向上が見られた。

ab(ApacheBenchmark)によるサーバ負荷計測

通常 pagespeedあり
3444[#/sec] 55[#/sec]

想定よりも差が広がった。ただ、load averageは、0.5を上回ることはなかったので、よほどアクセス数があるサーバでない限りは問題はない…のだろうか。うーん。せめて200程度は欲しいと思っていたけど。

Apacheのメモリ使用量

通常 pagespeedあり
16.884KB 31,868KB

約2倍弱。メモリに余裕が無い場合は、プロセス数を制限しないと導入自体が難しい。

まとめ

けっこうなサーバ負荷が計測された。その上、ページの作りによっては全然パフォーマンスを得られないケースが多かった。テーブルレイアウト・CSSレイアウト以外にも、ハイブリッドなレイアウトなど色々と試してみたけど、殆どのケースで変化なし・微妙に遅いという結果に。

小さい画像がたくさんあるケースで、なおかつCSSレイアウトの場合は、速度向上が期待できるので、その場合は導入してもいいかもしれない。ただ、サーバリソースに余裕が無いからなのか、mod_pagespeedのバグなのか判断できなかったけど、生成される画像が壊れていたりと微妙に不安定だった。

まだbetaなので、今後に期待していきたいところ。

というか、この程度であればモジュールを使わずに事前にサイト設計に折り込めば、同様の恩恵が受けられるかもしれない。

§209 · 11月 24, 2010 · サーバ_Linux_Windows · · [Print]

1 Comment to “mod_pagespeedを導入・検証してみた”

  1. [...] This post was mentioned on Twitter by fukuchi, ZARU(ざる). ZARU(ざる) said: mod_pagespeedのパフォーマンスを計測して、簡単にまとめてみた。 http://tinyurl.com/26fcrpc [...]

Leave a Reply