Load Impactでパフォーマンステストしてみた

先日の(というか昨日ですが)WordPressのパフォーマンス改善的なネタがどうやら人気らしく、ReTweetしていただいてる数はもちろんですが、うちのブログにしては珍しくはてなやDeliciousなどでも多くブックマークしていただいてるようです(ありがとうございます)。

今朝方「そう言えば…」と思い出して、外部からパフォーマンスチェックができるサービスの一覧へのリンクを入れておきました。で、改めてお礼といってはなんですが、そこにも追加した「Load Impact」さんをちょっと紹介しておこうかな、と。

こちらにも無償で利用できるパフォーマンスチェックツールがありますので、それとあわせてここのサイトのサービスを使えばどういうことが確認できて、どういう対処の仕方があるのかを簡単に書いてみましょう。

同時接続数を変えてロード時間を計測できるLoad Impact

Load Impactは、スウェーデンのとある会社が提供しているオンラインのロードテストサービスです。こちらの主なサービスは、同時に複数のクライアントで接続して負荷をかけてロード時間の平均や使用帯域を計測することができるのが特徴です(お試し版は同時接続数50クライアントまでで一日3サイトまでかな?)。

大規模なアクセスがあるサイトなんかはロードバランサーなんか入ってて負荷分散されてたりするんでしょうが、中小規模のサイトではそうはいきません。とはいえ、プレスリリースやテレビに紹介されたとかで一時的にアクセスが増えてしまうことも考えられます。ホスティングの共用サービスだとサーバのチューニングなんかはできないでしょうけど、ちょっとした負荷でも問題なくアクセスできるようなサイトにしておくことも時には必要になります。備えあれば嬉しいな、です(違)。

インフラが全然ダメなのにいきなり10MBのコンテンツとかダウンロードさせてたら、サーバとクライアントのコネクションがなかなか開放されず、すぐ一杯一杯になることは容易に想像できます(どことは言わんけど 笑)。かといって、新しい接続のためにリソースが確保できるかって言うとそこにも限界がありますから、自分とこで対応できる限界を知っておくこともまた大事なわけです。

いろんなUAをシミュレートできるPage Analyzer

この類のサービスを専門にされている会社さんは、大体無償で利用できるパフォーマンス計測ツールを公開されています。Load Impactさんでも「Page Analyzer」なる計測ツールがあります。

ここのツールの特徴は、他のとこよりも格段に豊富なUser Agentsをシミュレートすることができることでしょうか。

IEはもちろん、FirefoxやChrome、Safariなどのいろいろなバージョンが用意されています(ブラウザ毎にコネクション数とか違いますからね *1)。おそらくストックホルムからのアクセスになるはずですが、比較的レイテンシも少なくて良い感じです。

うちのヘボいトップで大体3秒前後。Chartbeatを使って国内からアクセスされている皆さんの様子を見てる感じでは、平均2秒いくかいかないかぐらいですのでまぁ良しと。秒数うんぬんより、UAのシミュレートができるということで便利です。

段階的に同時接続数をあげ、負荷をかけてロード時間を計測する

いよいよ本題に入りましょう。単なるサーバの設定などを確認する負荷テストであれば、専用のツールなどがあるのでそれを使えばいいわけですが、コンテンツの表示にかかる時間となるとどっかからやんないとなかなかわかりません。

が、しかし。このLoad Impactさんのサービスを使えば、段階的に同時接続数をあげて負荷を与えつつ、表示までにかかってる時間をチェックすることができるんですね。しかも同時接続数50までなら無償でチェック可能!、250まで接続数を上げてもたった$9!ってなわけです(どこの通販だと 笑)。

ま、そんなわけでですね、とりあえず同時に50クライアントまで増やしながらテストしてみるには無償でも可能です。Webサイトのトップにある入力欄にURL入れて、上の図の左のFreeテストに進めばチェックできます。

ただし、チェック結果の保存にはアカウントの登録が必要だったかな? アカウント登録しても最初はFree版なので大丈夫ですけどね。

有償版は同時接続数をもっと増やしたり、細かな設定をした上でテストが可能になっています。画面見ただけだとちょっとわかりにくいのですが、$9/per dayってなってるのは「24時間内にテストする」ワンタイムフィーみたいなもんです(他にもオプションがあります)。

有償でもそんなビックリする値段じゃないですし、ある程度の規模での同時アクセスが見込まれるコンテンツなどを制作されている方にはいいかもしれません。自分の作ってるコンテンツの限界点を知るためにも、とりあえず試してみるのが一番(笑)。

とりあえず試してみたらこうなった

いや、実はちょっと前からWordPressの設定やサーバの設定をいじってはチェックしていたんですけど、今回同時に100クライアントまで増やしてロード時間を計測してみました。一番安いプランではスウェーデンのストックホルムからしか計れなかったので、とりあえずそれで。

テストにはそれなりに時間がかかりますので、コーヒー飲んでたりしてればそのうち終わります(テスト数による)。この図は、10クライアントから段階的に10ずつ増やし、最終的に100クライアントの同時アクセスまでの結果です。

グラフの線は、できるだけ横方向に同じような状態が良いのは言うまでもないですかね。グラフの縦は表示までの秒数になっています。80クライアントのとこでちょっとだけあがってますけど、広い目で見ればストックホルムからでほぼ3秒前後なので良しとしましょう。

例えばグラフがこういうことになったら、サーバ側の設定をちょっと変更したりする必要があるかな?と。40クライアントが同時アクセスしてきたらガクッと時間がかかり始めたとか、そういうことがわかるわけです。このグラフの形によって意味があるので、それはフォーラムで解説されています(英語だけど 笑)。

最後に。ちゃんとアクセスされてます(笑)

「ホントにアクセスされてんの?」とか疑う方もいらっしゃるかもしれないので(笑)、うちのサーバを監視してる「MUNIN」の画面を出しておきます。

上の図はApacheのプロセスの数を表示したグラフです。左側の縦2つのグラフの右端がガクッとあがってますが、この時がLoad Impactで負荷テストをしている時間です(50と100と2回やってるので2箇所だけ急激にあがってますね)。

WebサーバのApacheはアクセスが増えれば自動的にプロセスを増やす仕組みになってるので良いとはいえ、テストしたらある数値から急激に時間がかかってる場合などは、サーバ側の設定やらコンテンツの作り方などもろもろを見直したりした方がいいかもしれませんね。

サーバの設定をいじるなんてみんながみんなできるわけではありませんし、システムのチューニングは餅は餅屋で任せた方が良いとは思います。でもまぁ、一応こういう負荷テストを使って、コンテンツの弱点を探すってのもありじゃないかな?と思ったので簡単にご紹介まで。

うちもとりあえず「100人乗っても大丈夫」のようです。

*1: ブラウザのバージョン毎の仕様はこちらが詳しいです

Tags: , , ,

   

Comments are closed.


Performance Optimization WordPress Plugins by W3 EDGE