サービス開始から1年、大きく低下したWebサイトの表示速度!Z.comの評価

Z.comがサービスを開始してから1年が経過しました。 サービス開始間もない頃にWebサイトのレスポンス性能を評価しましたが、そのときの結果はかなり優秀なものでした。

当時はPHP7を採用するサービスが少なかったこともあり、PHP5での測定にとどまっていますが、今では多くのレンタルサーバーがPHP7を採用しつつあります。今回は、PHP7の評価を中心に、前回の性能を維持しているかを確認します。

レンタルサーバーを選択する際、大切なポイントは「Webサイトの表示速度」です。いくら豊富な機能に対応しても、運営サイトのレスポンスが悪ければ絵に描いた餅です。訪問者を自分に置き換えれば、なかなか開かないページにイライラすることは想像に難くないでしょう。そして、レスポンスの悪さは検索順位にも悪影響です。

Z.comレンタルサーバーの全てが分かる
Z.comレンタルサーバーのレビュー

表示速度の重要性

様々な調査結果により 3秒 という時間がレスポンス性能のキーワードとなります。

コンテンツが表示されるまでに3秒を超えてしまうと、

  • 訪問者の40%がサイトから離脱(データによっては57%)
    • 訪問者の47%は2秒以内の読み込みを希望
  • 訪問者の79%は、そのサイトを再訪しない

レスポンス性能の影響は様々です。

  • 1秒遅くなると、ページビュー11%減、コンバージョン率7%減、顧客満足16%減
  • 10万ドル/日を売り上げるサイトであれば、1秒の遅れで250万ドル/年の損失
    • Amazonであれば1秒の遅れで、16億ドルの機会損失
  • モバイル環境(スマートフォンなど)ではネットワーク環境が貧弱なこともあり、より厳しい評価となります

快適なWebサイトの条件は、「最低でも3秒以内」「理想は2秒以内」のレスポンスとなります。それを越えてしまうと、どうしても必要な情報がない限り目に触れる機会すらなくなります。

参考
How Loading Time Affects Your Bottom Line
The Cost of Poor Web Performance - INFOGRAPHIC
hostingstockの測定結果について
端末(パソコンやスマートフォン)のレンダリング等の処理時間を含みません。理由は訪問者の端末性能やブラウザの種類により、処理時間が大きく異なるためです。つまり、測定結果はWebページを構成するデータを受信するために必要な時間を示しています。実際にWebページが表示されるまでには、HTML解析やJavaScript処理などを含む描画時間が加算されます。

測定方法

測定用サーバーから定期的にアクセスして、Webページの取得に要する時間を測定します。測定対象として「WordPress(動的ページ)」と「HTML(静的ページ)」があります。より詳しい内容は こちら を参考にしてください。

測定対象  
動的ページ(WordPress) WordPressサイト(PHP&データベース)。コンテンツは平均的なウェブページの構成を採用(HTTP Archiveの統計データを利用)。
静的ページ(HTML) HTMLファイルによるサイト。WordPressが生成したデータをHTMLファイル化。PHPとデータベースを使用しません。
外部サービスを利用しない理由
PingdomやGTmetrixでレンタルサーバーの性能を評価しても意味がありません

測定期間

測定期間は 7日間 であり、5分ごとに2回の測定を行います。つまり、「7日×24時間×12回(60/5)×2回」の約4,000回となります。

一度きりの測定では意味がないため、一定期間の継続した測定を行っています。「利用者や訪問者が測定時だけ少なくレスポンスが良かった」「一時的なトラブルが原因でレスポンスが悪かった」という、誤った結果となることを(完全ではありませんが)防げます。

一定期間測定することで、利用者や訪問者が変動する日中、夜間、深夜の差を確認することもできます。例えば、訪問者が多くなり負荷が高くなる夜間と、負荷の下がる深夜との差が小さければ、負荷に強いサーバーであることを推測できます。

測定経路

以前は複数のリージョン(東京、アメリカ、シンガポール)から選択できましたが、国内向けサービスでは東京に固定されています。

国内の場合、ロリポップ!などのGMO系列のサービスが収容されているデータセンターで運用されています。あくまでも推測ですが、データセンターの所在地は東京都品川区のようです。

経路図は測定元からデータセンターまでのネットワークを示しており、経由するIX(インターネットエクスチェンジ)等を含みます。測定元はK-Opticom(インターネットプロバイダ)のネットワーク内、関西圏(赤い円)にあるサーバーです。

測定環境
測定用サーバーは 測定専用 として、測定以外に利用していません。
eo光(K-Opticom/関西電力)100Mタイプ
ルーターとサーバーは有線接続

測定結果

  WordPress
PHP5/CGI
HTML
(PHP5/CGI)
WordPress
(PHP7/CGI)
HTML
(PHP7/CGI)
有効測定 4,032回 4,032回 4,032回 4,032回
棄却検定除外 1.36% (55) 8.73% (352) 5.16% (208) 2.46% (99)
棄却検定閾値 4.83秒 1.06秒 1.15秒 0.87秒
エラー 0% (0) 0% (0) 0% (0) 0% (0)
3秒以上 5.83% (235) 2.63% (106) 3.15% (127) 0.27% (11)
中央値 0.80秒 0.49秒 0.68秒 0.49秒
平均値 1.04秒 0.53秒 0.70秒 0.51秒
ばらつき/標準偏差 0.77秒 0.11秒 0.09秒 0.07秒
変動係数 74.04% 20.75% 12.86% 13.73%
測定結果について
測定実行のタイミングによりサーバーやネットワークの状態(混雑具合)が変動します。集計に影響を与える一時的な異常値(外れ値)を棄却検定Grubbs' test(α=0.001)により省いています。これはネットワークを含む測定サーバー側の異常を省く意味もあります。
ばらつき(標準偏差)は、レスポンスの 約68%平均値 ± ばらつき に、 約95%平均値 ± ばらつき×2 に収まることを示します。ばらつきが小さいほどレスポンスが安定します。
変動係数は「平均値に対する変動の割合」を示します。平均値(処理時間)が近い場合、変動係数が小さいほど安定します。

Z.comの評価

測定対象は「PHP7」と「PHP5」とで稼働するWordPressです。Z.comは仕様上、複数のバージョン(PHP)を同時に利用できないため、ほぼ同時期ながらも測定期間は異なります。

WordPress(動的ページ)とHTML(静的ページ)をペアで測定しているため、HTMLの結果が二つあります。 そして、表のHTMLにあるPHPなどの表記は、組み合わせを示します。WordPressとHTMLとの差が、PHPやデータベースの処理性能を示します。

測定期間は異なるものの、ファイルをダウンロードするだけのHTMLは、どちらも同じような結果となります。

当然の結果かもしれませんが、WordPressを比較するとPHP7が優れています。未加工データによるt検定でも有意差(p<0.01)を確認でき、互換性の問題がなければPHP7を利用するとよいでしょう。

PHP7が優れていることを確認できましたが、棄却検定の結果が異常なことになっています。それでは除外データを含む未加工データを詳細に確認してみましょう。

未加工データの評価

  WordPress
PHP5/CGI
HTML
(PHP5/CGI)
WordPress
(PHP7/CGI)
HTML
(PHP7/CGI)
3秒以上 5.83% (235) 2.63% (106) 3.15% (127) 0.27% (11)
中央値 0.80秒 0.50秒 0.69秒 0.49秒
平均値 1.11秒 0.71秒 0.93秒 0.53秒
ばらつき/標準偏差 1.00秒 0.79秒 1.31秒 0.24秒
変動係数 90.09% 111.27% 140.86% 45.28%

一時的(偶発的)な遅延を省くために棄却検定を適用しています。しかし、一時的とは思えないほどの除外数となったので未加工データで検証します。

グラフだけでも夜間のデータが原因であることが分かります。3日目に大きな遅延が発生していますが、これを含めると検証しにくくなるため無視します。他社でも一時的に遅くなることはあります。

しかし、1日だけなら無視できますが、深夜に恒常的な遅延があることは間違いないようです。期間中に障害情報のアナウンスはなく、最低でも測定期間の2週間はこの状況が続いていたことになります。

同時期に実施したベンチマークでは、前回より実行速度が向上しており、夜間に処理性能が低下するような結果となっていません。 そのため、いわゆる「ハズレ」のサーバーが割り当てられたとも思えません。 さらに、HTMLの結果やFTP性能の測定結果でもネットワーク性能(転送速度)は安定しています。

これらの結果から分かることは、夜間のPHPに対するアクセスに対して遅延が発生しているということです。 ネットワーク性能やサーバーの処理性能は安定しており、PHP等のスクリプト、またはWordPressに対するアクセスに制限があるような印象です。同じデータセンターで運用されるロリポップ!も同様の傾向にあり、何かしらの制御が行われているのでしょう。

サービス開始時との比較

  WordPress
開始時
HTML
開始時
WordPress
今回
HTML
今回
有効測定 3,887回 4,025回 4,032回 4,032回
エラー 3.73% (145) 0.17% (7) 0.00% (0) 0.00% (0)
3秒以上 2.24% (87) 0.67% (27) 5.83% (235) 2.63% (106)
中央値 0.45秒 0.43秒 0.80秒 0.50秒
平均値 0.62秒 0.56秒 1.11秒 0.71秒
ばらつき/標準偏差 0.75秒 0.72秒 1.00秒 0.79秒
変動係数 120.97% 128.57% 90.09% 111.27%

サービス開始間もない頃に測定した結果と比較してみましょう。前回はPHP7で測定していないため、PHP5の測定結果(未加工データ)で比較します。

前回も一時的に遅くなることがありましたが、今回と比較すれば僅かなものです。また、WordPressとHTMLとの速度差が小さく、WordPressサイトでもトップクラスのレスポンス性能がありました。とは言え、高負荷によるエラー(約4%)が発生しており、復旧に4時間かかるなどやや不安定な印象はありました。

HTMLの平均値を比較するとやや遅くなっていますが、3日目のデータを除けば同程度です。つまり、ネットワーク性能(転送速度)に変化はないため、やはりPHPなどのスクリプトに対する限定的な帯域制御が行われている可能性が高いでしょう。あくまでも推測ですが、これが正解であってもユーザーにはどうにもできません。

○○○との比較

毎回他社との比較記事を掲載していますが、この結果では比較の意味がありません。

サービス開始間もない頃は優秀な性能でしたが、同じサービスとは思えないほどの結果となりました。 とは言え、エラーもなく平均値だけなら他社と比較しても決して悪くない性能を維持しています。 また、3日目のデータを除けば、Webサイトの運営に支障がでるほどの遅延でもありません。

しかし、他社の測定データとはかけ離れた傾向であり、積極的におすすめできるサービスではなくなったようです。

他のレンタルサーバーとの比較

公式サイト   WordPress Static
環境 平均値 秒中央値 秒標準偏差 秒エラー %平均値 秒中央値 秒標準偏差 秒エラー %

0.210.210.0100.210.210.010

PHP5/CGI

0.240.220.0500.430.540.20

PHP7/CGI

0.240.210.0700.240.210.060

0.250.230.060.020.260.230.080.42

Xキャッシュ

0.290.250.0900.280.250.070

0.370.350.0800.360.350.050

0.380.370.0500.570.660.190

PHP7/FastCGI

0.40.40.1200.230.220.030

WordPressサーバー

0.420.350.200.40.350.150

0.430.470.2100.430.220.310

PHP7/FastCGI

0.450.450.1500.290.260.090

PHP7

0.460.450.030.050.350.310.10.02

キャッシュ無効

0.470.520.1500.430.540.210

PHP5/FastCGI

0.470.470.1200.230.220.030

0.540.70.2500.360.330.090.02

PHP5/FastCGI

0.550.540.1700.330.290.110

0.620.620.030.10.410.340.140.17

PHP7

0.620.590.3200.380.310.20

PHP7/Module

0.620.590.1100.40.390.040

キャッシュ無効

0.620.610.1200.380.370.050

PHPサーバー

0.620.70.2600.340.290.10

PHP5

0.630.620.0300.320.310.030

PHP7

0.630.590.3300.370.310.180

0.640.610.100.480.450.090

PHP7/CGI

0.660.620.1200.390.380.050

0.6600.2200.6600.230

0.670.650.070.150.520.470.140.15

キャッシュ

0.680.680.0600.690.690.060

PHP7/CGI

0.70.680.0900.510.490.070

PHP5

0.710.690.3300.370.30.180

0.710.730.300.350.310.110

0.720.710.0500.240.240.010

0.750.630.3100.560.470.290

PHP5

0.750.70.3700.370.310.160

モジュール

0.80.750.160.150.370.360.060.1

0.830.790.3900.340.280.150

PHP7

0.840.80.2600.740.690.160

PHP7

0.840.840.1400.670.670.060

PHP7

0.850.840.0600.670.660.050

PHP7

0.880.840.160.750.610.570.10

0.910.860.1600.510.490.070

0.920.880.200.640.610.240

0.930.920.0500.650.650.040

PHP5

0.930.920.1600.670.670.060

0.950.950.1200.520.50.080

CGI

0.950.90.1600.390.370.070

PHP5/FastCGI

0.970.960.40.150.420.410.070.07

PHP5

10.980.3100.770.80.140

PHP5/CGI

1.040.80.7700.530.490.110

1.051.010.1200.810.740.190

PHP5

1.11.050.1600.60.560.10

1.141.140.0400.270.260.020

ライトプラン

1.441.221.300.510.370.670

1.961.920.630.021.631.560.590.02

2.091.71.070.931.241.170.420.6

2.2300.650.111.9100.60.07

PHP5/FastCGI

2.722.550.670.072.412.170.660.07

PHP5/FastCGI

2.92.780.510.352.522.370.430.15

PHP7/FastCGI

2.922.80.530.272.572.460.360.22

PHP7

3.181.572.340.350.710.710.180.22

PHP5

3.31.532.470.50.720.720.180.45

3.363.090.630.022.892.720.350

3.7800.50.073.7700.510.1

4.564.530.3104.244.220.340

5.75.720.830.025.135.140.810.02

8.056.723.081.687.826.43.231.41

00000.340.290.150

00006.136.270.450
注意
最新の測定結果を優先的に表示するため、記事作成時の評価とこの比較結果(表のデータ)が異なる可能性があります。

測定結果について
レンタルサーバーは1つのサービス(プラン)に対して多くのサーバーが運用されています。測定結果はその中の1つに過ぎません。契約時期で割り当てられるサーバーのスペックは異なり、さらに、同じサーバーに収容される他契約者の負荷に大きく左右されます。

関連記事

BLOG

UPDATE