モジュール版PHP対応でさらに安定!ヘテムル新サーバーのベンチマーク

2016年11月1日にヘテムル(heteml)のサーバー構成が刷新され「モジュール版PHP」に対応しました。モジュール版PHPはCGI版PHPと比較して「少ないメモリ使用量」「優れた実行速度」という特徴があります。さらに、ハードウェアも更新され12コアから20コアのCPUに変更されています。

< サーバースペックを大幅に改善 >

サーバー基盤システムを刷新し、従来の価格を維持したまま、スペックの向上を実現しました。CPUに関しては12コアから20コアへスペックアップし、クロック数も高くなったことで性能が約2倍に改善しております。

ただし、旧仕様のコア数は2CPUの合算であり、単体では6コアのCPUでした。おそらく新仕様のサーバーも10コアのCPUを2つ搭載しているのでしょう。これは、エックスサーバーと同クラスであり、一般的なレンタルサーバーで提供されるCPUでは最高クラスです。

レンタルサーバーを検討する際、大事なポイントはWebサイトの表示速度です。レスポンスが悪ければ訪問者にストレスを与え、検索順位にも悪影響です。もう一つはサーバーの処理性能であり、表示速度はもちろんのこと高負荷時(アクセス増加時)の安定性に大きく影響します。

いくら公式サイトで高性能を謳っていても、実際に契約すると期待外れなことが多々あります。ここではヘテムルの新サーバーの性能評価を行い、旧仕様サーバーと新仕様サーバーとの比較を行います。

ヘテムルの全てが分かる
ヘテムルのレビュー

測定方法

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

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

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

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

測定結果

  PHP7 Module
新サーバー
PHP7 CGI
新サーバー
PHP7 CGI
旧サーバー
PHP5 CGI
旧サーバー
有効測定数 863 864 864 863
棄却検定除外 0%(0) 0%(0) 0.23%(2) 0.23%(2)
棄却検定閾値 3.30秒 3.51秒 3.07秒 8.46秒
エラー 0%(0) 0%(0) 0%(0) 0%(0)
中央値 3.12秒 3.19秒 2.51秒 5.58秒
平均値 3.11秒 3.19秒 2.52秒 5.75秒
ばらつき 0.08秒 0.13秒 0.12秒 0.61秒
変動係数 2.57% 4.08% 4.76% 10.6%
測定結果について
72時間(3日間) の測定結果です。X軸は時刻(0時~24時)を表し、各時刻の値は3日間の平均値です。有効測定数はエラーを省いた実測定数です。
測定のタイミングによりサーバーの負荷状態(混雑具合)が変動します。集計に影響を与える一時的な異常値(外れ値)を棄却検定Grubbs' test(α=0.001)により省いています。
ばらつき(標準偏差)は、処理の 約68%平均値 ± ばらつき に、約95%平均値 ± ばらつき×2 に収まることを示します。ばらつきが小さいほど処理性能が安定します。

ヘテムルの評価

ヘテムルはWebサーバーとデータベースサーバーが異なり、さらにデータベース作成のタイミングで割り当てサーバーが変化します。そのためデータベースの性能差が影響しないように、同じ(データベース)サーバーを参照するように調整しています。 さらに、新仕様のモジュール版とCGI版、旧仕様のPHP5とPHP7、それぞれ同時期に同じサーバーに対して測定を実施しています。

さて、測定結果を確認すると「旧仕様サーバーの処理性能が高い」という、少し不思議な結果となりました。旧仕様の測定期間は仕様が切り替わる直前のものです。この結果が旧仕様と新仕様の差を表していると考えてもよいでしょう。

新仕様ではモジュール版の高性能さをアピールしていますが、CGI版との差がほとんどありません。そもそも、モジュール版PHPは多数のアクセス時に効果を発揮するため、この測定では有効性を確認しにくいのでしょう。 t検定による有意差(p<0.01)を確認できるため、モジュール版の実行速度が優れていることに間違いはありません。 Webサイトの表示速度は、モジュール版が上回ります。

この測定方法ではモジュール版とCGI版との差を確認できませんでしたが、他のレンタルサーバーと同様にPHP5とPHP7との差の方は大きいようです。

PHP7はPHP5と比較して実行速度が大幅に改善されています。旧仕様では「56%」もの改善となっており、使用するアプリケーションの互換性に問題がなければ積極的にPHP7を採用するべきでしょう。PHP5の場合、アクセスが多くなる(負荷の高くなる)夜間に処理性能が低下することが分かります。同じサーバーかつ同時期の測定なので、PHPのバージョン以外の差はありません。

ハードウェアが刷新されたにも関わらず、旧仕様に劣っている理由は不明です。考えられる理由は以下の2つです。

  • 旧仕様と新仕様とのデータベースサーバーの性能差。
  • 契約者ごとリソースを厳密に管理するなど、安定性重視の設定となっている。

とは言え、新サーバーのばらつきの小ささは特筆ものであり、トップクラスの安定性があります。 この測定では旧仕様(PHP7に限り)に劣りますが、Webサイトのレスポンス性能は比較にならないほど向上しています。サーバーだけでなく、ネットワーク環境を含めた全体的な性能が向上しているのでしょう。

メモ
棄却検定による除外数が少ないため、未加工のデータは掲載していません(同じデータとなるため意味がありません)。新仕様では除外数が0であり、非常に安定していることが分かります。

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

  ヘテムル
(PHP7)
エックスサーバー
(PHP7)
Zenlogic
(PHP5)
ロリポップ!
(PHP5)
有効測定数 863 864 862 858
棄却検定除外 0%(0) 1.27%(11) 0.93%(8) 0.58%(5)
棄却検定閾値 3.30秒 3.41秒 3.69秒 4.52秒
エラー 0%(0) 0%(0) 0%(0) 0%(0)
中央値 3.12秒 2.23秒 3.18秒 3.86秒
平均値 3.11秒 2.28秒 3.20秒 3.87秒
ばらつき 0.08秒 0.25秒 0.11秒 0.17秒
変動係数 2.57% 11.0% 3.44% 4.39%
変動係数
変動係数は「平均値に対する変動の割合」を示します。平均値(処理時間)が近い場合、変動係数が小さいほど安定します。

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

比較対象は、エックスサーバー(XSERVER)、Zenlogic(ゼンロジック)、ロリポップ!です。

PHPのバージョン
記事作成時Zenlogicとロリポップ!はPHP7に対応していません。

これらの中ではエックスサーバーが頭一つ抜き出ています。エックスサーバーも2016年8月に基盤システムが刷新されており、最新CPUや大容量メモリを搭載するサーバーを採用しています。料金的にヘテムルと比較されるサービスですが、全体的な性能はエックスサーバーが優れているように感じます。どちらかで迷った場合は必要な機能(仕様)で選択することになるでしょう。

Zenlogicは仮想環境を採用したサービスなので、プランごとに割り当てられるリソース(仮想CPUやメモリ)が大きく変化します。この測定結果は最廉価プランのものであり、上位プランになると専用サーバークラスの性能となります。最廉価プランでもヘテムルと同程度となっていますが、この結果はPHP5の結果であり、PHP7に対応すればさらに改善されるでしょう。

ロリポップ!はヘテムルの下位サービス(姉妹サービス)であり、この結果はモジュール版PHP対応のスタンダードプランのものです。他に劣りますが、基本料金を考えればコストパフォーマンスの高い結果となっており、安価なサービスを検討しているならおすすめの一つです。

以前からヘテムルは仕様(機能)やコントロールパネルの使い勝手など全体的に優秀でしたが、もう一つ推しの足りないサービスでした。しかし、今回のハードウェア刷新で上位クラスの性能(特にレスポンス性能)となりました。エックスサーバーとともに、ミドルクラスではおすすめサービスの一つと言えるでしょう。

各サービスの公式サイト
  ヘテムル / エックスサーバー / ロリポップ! / Zenlogic

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

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

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

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

関連記事

BLOG

UPDATE