レンタルサーバー性能の測定方法を変更しました

以前までは、Wgetを利用していました。詳しくは以下のページをご覧ください。

WebブラウザとWgetとの違い

Webブラウザは、サーバーにある複数のファイルに同時にアクセスすることで、表示速度(ダウンロード時間)を向上させています。ブラウザの実装によりますが、例えば、FirefoxやChromeなどの最大同時接続数は6となっています。

試しにFirefoxで上記の測定用サイトにアクセスすると、結果は以下のようになります。同時に複数のファイルにアクセスしているのが分かります。まず、HTMLデータ(index.html等)をダウンロードし、そのHTMLを解析して、そこに含まれるCSSやJavaScript、画像のダウンロードが始まります。

Wgetを利用することで、Webページに含まれる全てのデータを自動的にダウンロードすることはできます。ただ、ダウンロード処理は1つずつ順番にされるため、並列でダウンロードするWebブラウザとの処理時間に差が出てしまいます。

Webブラウザもパソコンやネットワークの性能によりユーザーの体感速度は大きく変わりますが、少しでも実環境の結果に近づけるために測定プログラムの変更を行いました。

curlを利用する

curlはURL転送(通信)ライブラリであり、HTTP以外にも様々なプロトコルに対応しています。curlを選択した理由は、並列アクセスが可能となっているためです。

Webブラウザの仕様と同じにするならば、6ファイルを並列にダウンロードすればよいのですが、Webブラウザの挙動をみると、常に6ファイルにアクセスしているわけではありません。

理由としては、まず最初にダウンロードしたHTMLを解析しつつダウンロードするファイルが決まるためです。CSSやJavaScriptなら、そのファイル内でさらに他のファイルが利用されることも普通です。

  • Webブラウザは常に上限の並列アクセスを行っているわけではない。
  • curlでの処理はHTML等の処理時間を含まない。
  • レンダリング(描画)時間を含まない。

これらのことを考慮して、curlでの同時アクセス数は3に設定しています。あくまでもWebブラウザと同じような処理を簡易的に行っているだけで、厳密には異なります。

ダウンロード処理は、下図のようになります。

評価結果をどのようにみるか

Webブラウザのライブラリ(GeckoやWebKit)を利用して測定するとよいのでしょうが、OSの違いも含めてブラウザ毎に実装が異なり、それら全てに対応するのは難しいでしょう。そもそも、ブラウザの性能とレンタルサーバーの性能は関係がありません。

hostingstock.netの測定結果は、HTMLやCSSの解析時間は含まれない単純なダウンロード時間を測定しています。Webブラウザでのアクセスと直接的な比較はできませんが、レンタルサーバーのレスポンス性能を知ることができます。

このような単純な測定でも以下の評価は十分にできると思います。また、他のレンタルサーバーの測定結果と比較すれば、相対的にどちらが優れているかを確認することができます。

  • アクセスの少ない午前中と比較して、夜間のレスポンスはどうなのか?また、週末等の休日に変化はあるのか。
  • レスポンスは安定しているのか?hostingstock.netでは、ばらつきを標準偏差で示しています。
  • アクセスエラーの頻度は?例えば、503エラーなどです。
  • スクリプト(この測定ではPHP)やデータベースの処理速度は?

いくつかの注意点

測定結果のダウンロード時間が早くても、実環境(Webブラウザ)ではそうでないかもしれませんし、遅いからと言って単純に悪いレンタルサーバーとはなりません。少々遅くてもレスポンスが時間帯を問わず安定してれば、それは安定した優秀なレンタルサーバーです。

レンタルサーバー(特に共用タイプ)は、サーバーを複数のユーザーでシェアして利用します。意図的ではないとしてもアクセス数が多いなど高負荷をかけるユーザーが同じサーバーであれば、残念ながらレスポンスは悪くなってしまいます。つまり、hostingstock.netの測定結果は契約したサーバーの状況に左右されるため、レンタルサーバーの絶対的な評価になるわけではありません。

hostingstock.netで契約してる安価なレンタルサーバーの1つでは、他のユーザーがCronで毎時0分と30分に高負荷をかけており、データベース接続エラーになることがあります。