EC-CUBE2.11系の特長の中で「最大約60倍の高速化」が謳われています。最大値とのことですが、実際にはどのようなパフォーマンスなのか検証してみたいと思います。
これまでのEC-CUBEは、カテゴリや規格数が増えると、大きく速度が劣化していました。今回は1万商品でテストをしますが、カテゴリも30個とし、規格も各商品に3x3を用意しています。生成には商品生成スクリプトを利用しました。2.11からはインストール時にtestディレクトリに保存されています。
なるべく実際のECの運用環境に近い商品登録状況になるように、35~50行目は以下の通りにして、スクリプトを10回実行しました。
利用には、公式の「EC-CUBEクラウドサーバ」を貸し出してもらいました。一部、EC-CUBE向けにOSやWebサーバをチューニングしているということです。
計測には、SafariWebインスペクタを利用して、複数回読み込みしたレンダリング完了までの平均値を利用しています。
MySQL 5.1系でのベンチマーク
まずは、EC-CUBEとこれまで相性が悪いと言われていたMySQLで検証しましょう。
- サーバ:EC-CUBEクラウドサーバ(アドバンス)
- DB:MySQL 5.1.X
結果は以下の通りです。
バージョン | TOPページ | 商品一覧(あるカテゴリーの1ページ目を15件表示) |
2.4.4 | 30秒タイムアウト | 30秒タイムアウト |
2.11.0 | 0.8秒 | 1.6秒 |
同条件で2.4系ではレスポンスは全く返ってこなかったものが、2.11系では平均して1秒前後でレスポンスが返ってきました。30秒で全く返ってくる気配がなかったものが1秒以内で返ってくることを考えれば、60倍という表現は大げさではなさそうです。これぐらいで返ってくれば、十分実用的なレベルと言えるでしょう。
一方、サーバ環境を公式クラウドサーバのアドバンスよりも、もう少し安価なファーストプランでも実験してみました。
- サーバ:EC-CUBEクラウドサーバ(ファースト)←変更
- DB:MySQL 5.1.X
バージョン | TOPページ | 商品一覧(あるカテゴリーの1ページ目を15件表示) |
2.4.4 | 30秒タイムアウト | 30秒タイムアウト |
2.11.0 | 13秒 | 9.4秒 |
1秒台で返ってきていたレスポンスが10秒近くまで劣化してしまいました。
あたりまえではありますが、データベースだけではなく、サーバのスペックも速度には大きく影響を与えます。実際に商品数が多い大型ECサイトを運用するのであれば、ある程度のスペックのサーバを用意する必要があるでしょう。
PostgreSQL9系でのベンチマーク
それでは、相性が良いと言われていたPostgreSQLではどうでしょう。最新版の9系を使ってベンチマークしてみました。
- サーバ:EC-CUBEクラウドサーバ(アドバンス)
- DB:PostgreSQL 9.0.X ←変更
バージョン | TOPページ | 商品一覧(あるカテゴリーの1ページ目を15件表示) |
2.4.4 | 0.45秒 | 0.7秒 |
2.11.0 | 0.38秒 | 0.92秒 |
こちらは、もともと2.4系でも速度が出ていたので、2.11系でも大きな変化はありませんでした。
さくらのVPSでも動かしてみた
筆者の手元にたまたまあった以下の環境でも、同じ商品件数でEC-CUBE 2.11.0を動かしてみました。
- サーバ:さくらのVPS CentOS 5.5 x86_64
- PHP:PHP 5.2.14
- DB:PostgreSQL8.5(shared_buffers = 128MB)
バージョン | TOPページ | 商品一覧(あるカテゴリーの1ページ目を15件表示) |
2.11.0 | 2.1秒 | 1.07秒 |
- サーバ:さくらのVPS CentOS 5.5 x86_64
- PHP:PHP 5.2.14
- DB:MySQL 5.1.x
バージョン | TOPページ | 商品一覧(あるカテゴリーの1ページ目を15件表示) |
2.11.0 | 2.3秒 | 4.0秒 |
結論
EC-CUBEで使用すると遅いと言われていたMySQL環境でも、今回のバージョンアップで相当速くなりました。今までは実用に耐えなかったような件数でも、十分問題ない速度で返ってきます。ただし、サーバのスペックにはそれなりのものを用意する必要があります。
一方、PostgreSQLでは比較的低スペックのサーバでも速度が出やすいようです。PostgreSQLがEC-CUBEには有利という点では、新しいバージョンでも変化はないと言えるでしょう。
それにしても公式サービスだけあって、EC-CUBEクラウドサーバのアドバンスは桁違いに速いと思いました。