2010-11-04
■[Apache] mod_pagespeed をちょっとだけ試してみた
Google の Page Speed の Apache module 版 mod_pagespeed をインストールして、ちょっとだけ動きを見てみた。
$ wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_amd64.deb # sudo dpkg -i mod-pagespeed-beta_current_amd64.deb
config はデフォルトで入るものそのまま。
<IfModule pagespeed_module>
SetOutputFilter MOD_PAGESPEED_OUTPUT_FILTER
ModPagespeed on
ModPagespeedUrlPrefix "http://localhost/mod_pagespeed/"
ModPagespeedFileCachePath "/var/mod_pagespeed/cache/"
ModPagespeedGeneratedFilePrefix "/var/mod_pagespeed/files/"
<Location /mod_pagespeed_statistics>
Order allow,deny
Allow from localhost
SetHandler mod_pagespeed_statistics
</Location>
</IfModule>
こんな HTML (ちょっと古めかしい) を /mod_pagespeed 以下に配置して GET すると……
<link rel="stylesheet" href="./css/global.css" type="text/css"> <link rel="stylesheet" href="./css/toppage.css" type="text/css"> <script language="javascript" src="./js/jquery-1.2.6.min.js"></script> <script language="javascript" src="./js/browserCheck.js"></script> <script language="javascript" src="./js/flashCheck.js"></script> <script language="javascript" src="./js/imageButtonClass.js"></script>
- CSS が連結される
- JavaScript が連結 + minify される
- 一部は HTML 内にインライン展開
<link rel="stylesheet" type="text/css" href="http://localhost/mod_pagespeed/css/cc.d1e8868aa9e24cd3a0b1e662bb9a5180.global,s+toppage,s.css"> <script language="javascript" src="http://localhost/mod_pagespeed/js/jm.c43653aab9297a12091818b0247f65c2.jquery-1,o2,o6,omin,l.js"></script> <script language="javascript">function BrowserChecker(navigatorObj){this.versionStr=navigatorObj.appVersion;this.nameStr=navigatorObj.appName; // 以下略
小さい画像は data URI scheme で展開されたり、
<img id="siteId" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASAAA(略)">
外部の画像は mod_pagespeed 経由に URL が書き換えられて
<img src="http://localhost/mod_pagespeed/img/ce.fbeece41cce99327743774bb37b597f2.banner_s_blog,j.jpg">
もともと付いていなかった Cache-Control ヘッダが付与されたり。
$ lwp-request -m HEAD http://loacalhost/mod_pagespeed/img/ce.fbeece41cce99327743774bb37b597f2.banner_s_blog,j.jpg 200 OK Cache-Control: public, max-age=31536000 Date: Thu, 04 Nov 2010 02:52:09 GMT Server: Apache/2.2.12 (Ubuntu) Vary: Accept-Encoding Content-Length: 9065 Content-Type: image/jpeg Last-Modified: Thu Nov 4 02:50:12 2010 GMT
動的に HTML を書き換えるので気になるパフォーマンスですが、10272 byte の HTML をフィルタ通して、最終的に 17852 byte になって (インライン展開される部分で大きくなる)、
Requests per second: 202.76 [#/sec] (mean)
Apache bench で計測して 200 req/sec ほど。(Athlon64 5400+)
ModPagespeed off だと
Requests per second: 3204.86 [#/sec] (mean)
ぐらいのマシンです。
よほどアクセスが多くないかぎり Web server の CPU は余ってることが多いと思うので、単に組み込むだけでクライアント側の体感速度が上がるならリーズナブルじゃないでしょうか。
mod_proxy と組み合わせる こともできるようですし、フィルタもいろいろある ようで、なかなか興味深いですね。
トラックバック - http://d.hatena.ne.jp/sfujiwara/20101104/1288841616
リンク元
- 485 http://www.google.co.jp/search?q=mod_pagespeed&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a
- 280 http://reader.livedoor.com/reader/
- 239 http://b.hatena.ne.jp/hotentry
- 193 http://twitter.com/
- 185 http://b.hatena.ne.jp/hotentry/it
- 180 http://www.google.co.jp/search?sourceid=chrome&ie=UTF-8&q=mod_pagespeed
- 156 http://slashdot.jp/link.pl?url=http://d.hatena.ne.jp/sfujiwara/20101104/1288841616&ref=http://slashdot.jp/it/article.pl?sid=10/11/05/0053256&threshold=-1
- 110 http://labs.topicmaker.com/~fujiwara/s.html
- 98 http://www.google.com/reader/view/
- 80 http://www.google.co.jp/reader/view/
