今回のテーマは「Webパフォーマンス」

日本では高速なインターネット回線が普及したこともあって、Webサービスに素早くアクセスできるようになっている。しかし、そのためか、かえってWebサービスのレスポンスがちょっとでも悪いとストレスを感じらてしまう。とくにWebアプリケーションやCGMサイト、Eコマースサイトのようなケースではレスポンスの遅さがビジネス上の失策につながるケースも少なくない。

最近では多数の画像やサイズの大きなJavaScriptを使ったWebサイトも増えており、そのためにさらにパフォーマンスが落ちている。JavaScriptやHTMLのレンダリング性能向上も意味はあるが、そもそもWebサイトのパフォーマンスを向上させるためにできることはもっとあるはずだ。

そこで今回はWebサイトのパフォーマンスを向上させるのに使えるWebアプリケーション、オープンソース・ソフトウェア(OSS)を紹介しよう。企業でも個人でも、Webサイトのパフォーマンスを向上させればユーザはもっと便利に使ってくれるようになるはずだ。

今回紹介するOSS・Webアプリ
Load Impact』 負荷テストで海外向けサービスのレスポンス測定
New Relic』 手軽に導入できるパフォーマンスモニタ
ShowSlow』 「YSlow」のパフォーマンス測定データを共有
Page Speed』 Google提供のパフォーマンスチェッカー



負荷テストで海外向けサービスのレスポンス測定

名称 Load Impact
URL http://loadimpact.com/

Load Impact』はオンラインの負荷テストサービスを提供している。低速なWebサービスはそれだけで機会を損失していると言えるので、レスポンスタイムを向上すればPVや売上増につながる可能性がある。そのための測定を行うのがLoad Impactだ。

「Load Impact」のトップページ。複数の拠点からアクセスして測定できるのがメリット

フリーのソフトウェアでもアクセス負荷テストを行うツールはあるが、Load Impactの特徴としてアクセス元がヨーロッパにあるというのが挙げられる。海外向けのサービスなどに対して日本国内からアクセスしていても思ったような改善につながらないケースもある。別拠点からの負荷テストを実現できるのが便利だ。

結果はこのようにグラフ化される。有料プランもある

無料で5回までのテスト結果を保存でき、有料で250~5000ユーザの範囲でテストが行なえる。日本国内に限らないサービスを展開している際にはとくに便利ではないだろうか。




手軽に導入できるパフォーマンスモニタ

名称 New Relic
URL http://www.newrelic.com/

New Relic』はRuby on Rails用のパフォーマンスモニタリングツールだ。プラグインベースでインストールしておくことで、アクションの実行時間やSQLの実行時間など様々なデータを取得、グラフ化してくれる。現状のシステムに手を入れることなく、手軽に導入できるのが利点だ。

「New Relic」のトップページ。Ruby on Rails向けのプラグインが提供されている

開発時にはより細かくデータが得られるが、運用しているサーバからもデータを得ることができる。実際のユーザの利用度合いを見てパフォーマンスを向上させられるのは便利だ。現状の分析だけでなく、これまでの履歴も追えるため、いつの時点からパフォーマンスが低下しているかといった情報も把握できるようになる。

測定結果。サーバごとにグラフが見られるようになっている

Webサービスは一度作ったら終わりではない。常に変化している。システムもデータ量も変わり、その時に応じた調整が必要になるはずだ。常時New Relicを使っていれば、必要なタイミングで必要なデータにアクセスできるはずだ。




「YSlow」のパフォーマンス測定データを共有

名称 ShowSlow
URL http://www.showslow.com/

Yahoo!では「YSlow」というWebサイトのパフォーマンス測定を行なうFirefoxアドオンを提供している。その測定データを登録できるサーバが『ShowSlow』だ。公開されたWebサービスもあるが、独自でサーバを立てることもできる。開発時のデータは独自のサーバにためたほうがよいだろう。

Amazon.comの測定結果。YSlowの結果を共有できる

パフォーマンスはクライアント環境によっても変わってくる。そうした各クライアントによる誤差を吸収してくれるのもShowSlowの魅力だ。皆で測定したデータを持ち寄れば、Webサービスの更新や新機能追加によってパフォーマンスがどのように変化したかもすぐに分かるようになる。また、有名サイトがどこに重点を置いてパフォーマンスを向上させているかも知ることができるので、とても有益なソフトウェアだ。

日々のグラフ。CSVで出力することも可能




Google提供のパフォーマンスチェッカー

名称 Page Speed
URL http://code.google.com/p/page-speed/

前述のYSlowはYahoo!によるソフトウェアだが、『Page Speed』はGoogle製のパフォーマンスチェッカーだ。YSlowと同じくFirefoxアドオンとして動作する。Gzip圧縮やネットワーク接続状況など、YSlow同様の測定結果に加え、各設定項目の改善によるパフォーマンス向上の目安数値を出してくれる点が特徴だ。

測定結果の一覧。アイコンによる評価と数値による結果が出る

数値で見せられると改善によって得られるメリットが分かり、費用対効果も分かりやすい。さらに使われていないCSSのクラスをリストアップする機能など(つまりこの部分は消せる可能性がある)、サイズを極力小さくするために必要な機能が数多く盛り込まれている。

ネットワーク接続状況のグラフ。リソースの種類ごとに色分けされる

コネクション数を減らしたり、サイズを圧縮して転送量を減らしたりすればWebサーバの負荷は下がり、より多くのコネクションをさばけるようになる。高負荷で悩んでいるWebサイトなどはぜひ使ってみてほしい。

いかがでしたか?

ひとことでWebサービスを改善するといっても、ボトルネックとして考えられる個所はいくつか考えられる。また、最初のリリースではよく考えられていても、日々の運用の中で状況が変わってきたことで、想定外の負荷が発生するということはよくある。そうした状況に対応するには日々のステータスを測定し、記録していく作業が必要だ。

そして改善を行なったら、それが数値化されたり、一覧として結果が見られたりするとよいだろう。より効率的にパフォーマンスを向上させるためにも、現状と結果の把握を今回紹介したようなツールを使って正しく行なおう。

著者プロフィール:MOONGIFT 中津川 篤司(なかつがわ あつし)

1978年生まれ。オープンソース紹介サイト「MOONGIFT」管理人。プログラマ、SE、ITマネージャを経て、オープンソースのビジネス活用を推進する。現在は独立し、Webサービスのコンサルティング、プロデュースを行う。