次の記事受託開発にアジャイルは適用できるか?mod_pagespeedってどんなサイトに向いてるんだろう?2013年04月12日ishizimaTweetみなさんこんちわ。事務所の引っ越しから1ヶ月ちょっと。新しい環境にも慣れてきました。いっても以前の場所から500mくらい渋谷よりになっただけなので、周辺まで変わったわけじゃないんですけどね。mod_pagespeedとは昨年末くらいからぼちぼち話題に出ていたmod_pagespeed。Google先生謹製の、入れるだけでWebの表示速度が速くなるという奴です。方々で言われていますが、画像の再圧縮、js/cssなど各種アセットの統合など、サーバサイドの仕事が増えるので単純に速くなるわけではなさそうです。)サーバがあるので、Wordpressを入れたapache環境で試してみました。インストールここ↓にあるパッケージを入れるだけ。以下のようにModPagespeedをonにすれば有効になります。onVirtualHostごとに設定を分けておきたければ、上記ファイルはoffにしておいて、各VirtualHostディレクティブの中に以下のような記述を追加するのでもOKです。</IfModule>設定が済んだらapacheを再起動しましょう。ディレクトリ毎に制御したい場合など、.htaccessに書くこともできるようです。私は試していないので、詳しくは以下の公式ドキュメントをご参照ください。実際のところどうなのか、使用前・使用後の速度を比較します。環境で試してみました。84.95%はい、トータルでは見事に遅くなりました。リクエストを送ってからサーバが返事を返すまでが長くなっています。長かったレスポンスまでの応答時間が、mod_pagespeedが入ったことで引き延ばされてしまい、メリットを相殺して余りある遅延を引き起こしたと考えられます。一方で、転送速度やブラウザ側のレンダリング速度は向上しました。転送時間が半分以下になったのは特筆に値するのではないでしょうか。CPUパワーに余裕があり前述のデメリットが発生しなければ、大きな恩恵を享受できるかもしれません。同じWordpressを移設して試してみます。cpuインスタンス、重たいWordpressを動かしながらも2割の速度向上が得られました。転送速度が9倍と大きく改善する一方、サーバサイドの処理時間は1割増で済んでいます。インストールして有効にしただけでこの結果ですから、文句はありません。)で静的コンテンツで試すついでに、Wordpressで動的に出力するのではなく静的コンテンツだとどうなるか試してみます。MovableTypeでサイトを構築した場合なんかもこれに該当すると思います。静的コンテンツを設置してみます。内容を静的コンテンツとして保存して使用しました。結果、Wordpressのケースと同様に全体で2割ほど速くなったことが見て取れます。中を見ると、やはり転送速度が大幅に向上しました。大きな時間ではなかったものの、14ms程度だったものが1msまで縮まったというのは素晴らしい結果ではないでしょうか。携帯電話回線のように、データ転送がボトルネックになる環境ではレスポンスの改善が期待できます。各項目の合計と全体の数字が若干ずれてるのですが、これはDNSの応答や接続の待ち時間など、出たり出なかったりする項目がいくつかあるためです。小さいのと、計測不能なことも多いので省いています。画像のリサイズについてmod_pagespeedはimgタグの属性値を見てリサイズしたファイルを生成し、キャッシュディレクトリにリサイズ結果を保存します。実ピクセル数と属性値がずれてようがずれてまいが関係ないようです。imgタグのsrc要素を自動的に書き替えます。そのリサイズした結果を見てみます。(元画像の約53%)どういう奸計か、pngが小さくなりました。減色でもしてるんでしょうか。JPEGの場合デカい画像を上げたらWordpressがリサイズしてくれます。でかくなくてもしてくれますね。Wordpressとmod_pagespeedで同じサイズを吐くようにして結果を比較すると、mod_pagespeedの結果はWordpressのものほどは小さくならないようです。オリジナルからしたら小さくなることに違いはありません。普通画像って表示とピッタリサイズにすると思うんですけど、諸事情でできないこともあると思うので、これはこれで有効だと思います。片っ端からリサイズされたら相当にCPUとI/Oのリソースを食うであろうことは想像に難くありません。一回きりの処理とはいえ。(元画像の約31%)リサイズ結果について、非可逆な再圧縮では避けられない画質の劣化も特に感じませんでした。ちなみに、ぼくの視力はあんまりよくないです。小さな画像を自動でbase64エンコードして、直接htmlに埋め込んでくれます。通常、base64するとデータサイズは膨らむんですけど、別ファイルに対してGETリクエストするよりはいいという判断だと思われます。問題ChromeでWordpressの画像アップロード画面が呼べなくなりました。(Firefoxだと大丈夫)開発者ツールで見るとJavaScriptのエラーが出ています。それ以外は問題ないようですが、問題が出るディレクトリ以下をOFFにするとか、問題となるフィルタをOFFにするとか、個別に対応しなければならなさそうです。Piplineが良きに計らってくれるような最適化を、mod_pagespeedは自動でどんなサイトにも適用してくれます。画像の最適化なんかはよりアグレッシブです。最初っから速度を重視して最適化したサイト構成にできればいいんですけど、必ずしもそうできないこともあるでしょう。いった場合でも、コンピューティングリソースと引き替えに、手をかけずに体感速度向上が提供できるというのはなかなかすごいことではないでしょうか。一方で、遅くなった例の通りパワー不足のサーバでは足枷となってしまうケースや、サイトの動作に影響を与えてしまうリスクも存在します。いった向き不向きがあることを念頭に置きつつ、手間をかけずに快適なアクセス環境を手に入れられるか試してみる価値がありそうです。次の記事受託開発にアジャイルは適用できるか?「いいね!」で応援よろしくお願いします!このエントリーに対するコメントはじめまして。遅い回線では、より効果があるでしょうね。date*日本語が含まれない投稿は無視されますのでご注意ください。まう場合があるのです。具体的な検証をした方の記事が下記にあります。まう場合があるのです。具体的な検証をした方の記事が下記にあります。fax.0422-26-9781お問い合わせはこちらからどうぞ。