FastCGI PHP7対応で処理性能向上!コアサーバーのベンチマーク結果と比較

前回の測定 から約1年が経過しました。前回の測定以降、コアサーバー(CORESERVER)はPHP7やSNI SSL(TLS拡張)に対応するなど、しっかりとメンテナンスが実施されているようです。詳しくは コアサーバーのレビュー をご覧ください。

レンタルサーバーを検討する際、重要なポイントはウェブサイトの表示速度です。レスポンスが悪ければ訪問者にストレスを与え、さらに検索エンジンの評価も下がります。もう一つは処理性能であり、表示速度はもちろんのこと高負荷時(アクセス増加時)の安定性に影響します。

ここではコアサーバーの処理性能を評価した結果を掲載します。サーバーの処理性能はレスポンス性能や安定性能に大きく影響するため、レンタルサーバー選びでは重要な要素です。

測定方法

WordPressをインストールしたウェブサイト(サーバー)を利用します。

  • 「ランダムな3,000文字/記事」の投稿と削除
    • 100記事をまとめて投稿、投稿後に全削除
    • 1記事ごとの生成処理を含む
  • 投稿と削除はWordPressの標準関数を利用
    • wp insert post、wp delete post

これらの処理を 5分間隔 で実行し、一連の処理時間を測定します。つまり、 PHPとデータベースの処理性能 を確認します。データセンター内(またはサーバー内)で完結する処理なので、外部ネットワーク環境の影響を受けません。

負荷について
100件程度は大した負荷ではありません。しかし、共用サーバーなので高負荷とならないように、1件ごとにwait処理を差し込んでいます。

測定結果

  PHP7.0 PHP5.6
有効測定数 856 856
棄却検定除外 0.12%(1) 0.47%(4)
棄却検定閾値 4.21秒 5.27秒
エラー 0.93%(8) 0.93%(8)
中央値 2.68秒 3.47秒
平均値 2.71秒 3.51秒
ばらつき 0.34秒 0.39秒
変動係数 12.6% 11.1%
測定結果について
72時間(3日間) の測定結果です。X軸は時刻(0時~24時)を表し、各時刻の値は3日間の平均値です。有効測定数はエラーを省いた実測定数です。
測定のタイミングによりサーバーの負荷状態(混雑具合)が変動します。集計に影響を与える一時的な異常値(外れ値)を棄却検定「Grubbs' test(α=0.001)」により省いています。
ばらつき(標準偏差)は、処理の 約68%平均値 ± ばらつき に、約95%平均値 ± ばらつき×2 に収まることを示します。つまり、ばらつきが小さいほど処理性能が安定しているといえます。
エラー内容  
PHP5.6 [8] 500 Internal Server Error [8]
PHP7.0 [8] 500 Internal Server Error [8]

コアサーバーの評価

PHP7.0とPHP5.6とで測定しています。どちらもFastCGIで動作しています。

.htaccessでのバージョン変更
コアサーバーは.htaccessでもPHPのバージョンを変更できます。しかし、この方法で変更するとFastCGIは無効となり、実行速度が低下します。理由がない限りコントロールパネルで変更するようにしましょう。

前回の測定結果はかなりひどいものでしたが、今回の測定結果は良好です。前回と測定方法は同じなので、他のサービスと比較してサーバーによる当たり外れが大きい印象です。

同時期かつ同じサーバーで測定しているため、時間帯による変動は同じような傾向となっています。棄却検定による除外数も少なく全体的に安定しています。しかし、高負荷時は処理速度が低下するわけではなく、あっさりとエラーになるようです。

この測定は外部サーバーからスクリプトを呼び出しています。理由はCronの最短実行間隔が1時間となっており、5分間隔で実行できないためです(もちろん、12個のジョブを設定する方法もありますが面倒です)。

今回の測定で発生したエラーの原因は全て「500 Internal Server Error」となっています。エラーの詳細は不明ですが主に高負荷時に発生するものです。前回の測定は今回(プランA)よりメモリに余裕のあるプランBでの測定でしたが、約5%(45回)のエラーが発生しました。収容数が多すぎるのか、ヘビーユーザーが多いのかは不明ですが、上位プランでも一概に負荷に強い訳ではありません。

PHP7(前回は非対応)に対応したこともあり、PHP5と比較して実行速度が約23%改善されます。互換性の問題がなければPHP7を積極的に使用するべきでしょう。t検定による有意差(p<0.01)もあり、確実に性能が向上します。

バリューサーバー、エックスサーバー、ロリポップ!との比較

  コアサーバー PHP7 バリューサーバー PHP7 エックスサーバー PHP7 ロリポップ PHP5
有効測定数 856 856 864 858
棄却検定除外 0.12%(1) 0.23%(2) 1.27%(11) 0.58%(5)
棄却検定閾値 4.21秒 3.57秒 3.41秒 4.52秒
エラー 0.93%(8) 0.93%(8) 0%(0) 0%(0)
中央値 2.68秒 2.12秒 2.23秒 3.86秒
平均値 2.71秒 2.15秒 2.28秒 3.87秒
ばらつき 0.34秒 0.32秒 0.25秒 0.17秒
変動係数 12.6% 14.9% 11.0% 4.39%
変動係数
変動係数は「平均値に対する変動の割合」を示します。平均値(処理時間)が同じであっても変動係数が大きい方の処理時間がばらつくことになります。

他社サービスと比較してみましょう。

比較対象は姉妹サービスのバリューサーバー(VALUESERVER)、エックスサーバー(XSERVER)、ロリポップ!(Lolipop!)です。ロリポップ!は上位プラン(スタンダード以上)と下位プランで性能差があるため、より高性能なスタンダードプランとします。

それぞれ処理性能に差はありますが、バリューサーバーとコアサーバーを除けば800回以上の測定にも関わらずエラーは発生していません。バリューサーバーも設定が推奨されているPHP5.6(モジュール版)の場合、実行速度は落ちますがエラーは発生しません。

エラーを無視すればコアサーバーの性能は平均以上となっており、初期費用無料かつ安価な利用料金を考慮すればかなり優秀な結果です。

ロリポップは唯一モジュールモードで動作しています。しかし、PHP5かつハードウェア性能が低いためか、そこまで処理性能が高くありません。料金なりの性能と言えます。

意外かもしれませんが、バリューサーバーのハードウェア性能は優れており、エックスサーバーに並ぶ性能があります。総合的なウェブサイトの表示速度は圧倒的にエックスサーバーが優れますが、料金差があるため仕方ありません。

CPU/メモリ  
バリューサーバー Xeon E5-2670 2.60GHz x 2CPU / 96GB
エックスサーバー Xeon E5-2640 v4 2.40GHz x 2CPU / 96GB

しかし、バリューサーバーの場合、推奨されるPHP5.6(モジュール版)にすると極端に実行速度が落ちます。詳しくはこちらで確認してください。

バリューサーバーとの比較

プラン MINI A B C バリューサーバー共通
CPU Xeon Xeon Xeon Xeon Xeon E5-2670
2.60GHz 2CPU
メモリ 8GB 8GB 12GB 16GB 96GB

コアサーバーは上位プランほどハードウェア性能が向上しますが、メモリ容量に関しては最上位プランであっても後発サービスのバリューサーバーに劣ります。コアサーバーが初期費用を無料としているのは、減価償却が終わっていることも理由でしょう。コアサーバーのCPUも非公開ですが、今回の測定対象サーバーについてはE5-2670(1CPU)となっています。

総合的にコアサーバーより後発のバリューサーバーが優れています。しかし、同じような仕様かつ初期費用無料ということから、コアサーバーを選ぶ方が多いようです。月額費用はバリューサーバーが安いため、長期運用ならお得です。

比較対象サービスのレビュー
バリューサーバー / エックスサーバー / ロリポップ!

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

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

1.71.670.070

PHP7/CGI

1.821.830.220

1.941.950.070

PHP7/CGI

2.0220.140

PHP7

2.152.120.321

2.162.170.080

PHP7

2.172.130.240

2.182.150.30

2.242.250.280

PHP7/FastCGI

2.282.230.250

PHP5/CGI

2.42.410.270

PHP5/CGI

2.412.390.150

2.522.430.330

PHP7

2.712.680.348

2.722.660.3735

PHP7/FastCGI

2.732.70.30

PHP5/FastCGI

2.732.680.270

2.862.860.090

PHP5

3.032.960.380

3.13.150.310

PHP7/Module

3.113.120.080

PHP&MySQL

3.113.010.330

3.133.140.070

PHP5/FastCGI

3.143.090.210

3.142.90.630

3.142.960.680

PHP7/CGI

3.193.190.130

3.23.180.110

PHP5

3.513.470.398

PHP5/FastCGI

3.613.60.40

3.643.60.290

WordPress

4.183.891.090

PHP7

4.224.070.470

4.224.270.30

4.424.430.180

4.54.470.580

PHP5/CGI

4.564.450.560

PHP5

4.964.860.450

PHP5/Module

5.124.960.80

PHP7

5.164.242.230

5.184.691.240

5.255.210.320

PHP7

5.255.170.370

5.315.320.110

PHP5

5.315.230.560

PHP7

5.675.520.740

5.715.590.450

PHP5

5.885.80.360

6.055.920.580

PHP5

6.455.152.640

PHP5

6.456.330.770

6.526.490.760

PHP5/FastCGI

6.646.670.330

6.96.910.130

ライト

7.416.932.160

8.37.313.550

14.49.341461

hostingstock.netで測定した他レンタルサーバーとの比較です。

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

バージョン別データ

PHP5.6

結果|有効測定数|除外数|棄却閾値|エラー|中央値|平均値|ばらつき :-|:-:|:-:|:-:|:-:-|:-:|:-:|:-: Raw(未加工)|856回||-|0.93%
(8回)|3.47秒|3.52秒|0.41秒 棄却検定|↑|0.47%
(4回)|5.27秒|↑|3.47秒|3.51秒|0.39秒

PHP7.0

結果 有効測定数 除外数 棄却閾値 エラー 中央値 平均値 ばらつき
Raw(未加工) 856回 - - 0.93%
(8回)
2.68秒 2.71秒 0.35秒
棄却検定 0.12%
(1回)
4.21秒 2.68秒 2.71秒 0.34秒

測定結果について!
レンタルサーバーは、一つのサービス(プラン)に対して多くのサーバーが運用されています。これらの測定結果は、その中の一つに過ぎません。契約時期により割り当てられるサーバーのスペックは異なる可能性があります。また、同じサーバーを利用する他のユーザーの負荷も影響します。

関連記事

BLOG

UPDATE