はじめに
以前のブログ「Magento 2 beta の性能を測定してみた」で、
Magento1.9.1+PHP5.5+MySQL5.6の組み合わせで商品一覧や商品詳細を表示した場合、同時接続数が増えても安定して性能が向上することがわかりました。
今回は注文処理の性能についてMagento CE 1.9.1とMagento CE 1.8.1で測定してみました。
測定環境
いつものように、小規模ECサイトを構築するという想定でMagentoを1台のサーバにインストールし、 商品購入時の性能値を計測します。
今回測定に用いたソフトウェアのバージョンとサーバのスペックは下記のようになります。
Magentoのバージョン | Magento CE 1.9.1 | Magento CE 1.8.1 |
---|---|---|
Magentoのカスタマイズの有無 | 無し | 無し |
Webサーバ | Apache 2.2 | Apache 2.2 |
PHP | PHP5.5 | PHP5.3 |
DBサーバ | MySQL5.6 | MySQL5.5 |
クラウドの種類 | Amazon EC2 | ||
---|---|---|---|
リージョン | 東京 | ||
インスタンスタイプ | m1.small vCPU 1 ECU 1 メモリ 1.7GB | m3.medium vCPU 1 ECU 3 メモリ 3.75GB | m3.large vCPU 2 ECU 6.5 メモリ 7.5GB |
ストレージ | Amazon EBS スタンダードボリューム |
※ECUとは:Amazon EC2 コンピュートユニット。Amazon 独自の計算能力を示す指標。大きいほど性能が高い。
測定内容
今回は店舗側ですでに会員登録を終えているユーザが注文をする想定で、単位時間あたりの注文の処理件数を計測しました。
店舗:単位時間あたりの注文の処理件数
測定方法
今回は、負荷測定ツールのApache Jmeterを利用して注文の処理速度を計測しました。
注文処理は以下の手順で商品を購入、ログアウトするまでとし、この流れを注文処理1回とします。
- 商品詳細ページの表示
- カートへの商品追加
- カートページの表示
- ワンページチェックアウトの表示
- ログイン
- 購入者住所の入力
- 配送先住所の入力
- 配送方法のの入力
- 決済方法のの入力
- 注文の確認の表示
- 注文確定
- 注文成功ページの表示
- ログアウト
- ログアウト成功の表示
測定結果
サーバ | 同時接続数 | |||
1 | 2 | 5 | 10 | |
CE 1.8.1 m1.small | 1.42 | 1.44 | 1.44 | 1.48 |
CE 1.8.1 m3.medium | 2.09 | 2.31 | 2.41 | 2.41 |
CE 1.8.1 m3.large | 3.95 | 5.1 | 5.91 | 5.92 |
CE 1.9.1 m1.small | 2.33 | 3.23 | 3.67 | 3.67 |
CE 1.9.1 m3.medium | 2.94 | 3.67 | 5.67 | 5.67 |
CE 1.9.1 m3.large | 4.33 | 7.33 | 13.00 | 14.00 |

考察
店舗の注文の処理速度の比較
商品詳細や商品一覧で性能が向上することを確認していましたが、やはり注文の処理速度もCE 1.8.1に比べてCE 1.9.1の方が性能が向上していることがわかりました。
性能向上の割合は同時接続数が大きいほど大きく、5や10の場合はCE 1.8.1に比べるとCE 1.9.1の方が2〜2.5倍の注文を受け付けることができていました。
考えられる理由としては、PHPとMySQLのバージョンが変わったことで性能が向上している点と、Magento CE 1.9.1から注文確定メールの送信方法が改善されている点です。
Magento CE 1.9.1から注文確定メールは注文確定時に直接送信せず一度送信キューに登録され、その後cronバッチ処理で送信するように仕組みに変更されました。
これにより、メールサーバへの接続に時間がかかるような環境でも注文受付に影響が少なくなっています。
今回の場合、メール送信処理にそれほど時間はかかっていないと思われますが、よりメール接続に時間のかかる環境の場合には差が顕著にあらわれると思います
まとめ
注文の処理速度は、全体的に、CE 1.8.1に比べてCE 1.9.1では向上していました。
性能向上の割合は同時接続数が5や10の場合、CE 1.9.1の環境ではCE 1.8.1に比較すると2〜2.5倍の注文を受け付けることができていました。
感想
今回の結果から、Magento CE1.9.1+PHP5.5+MySQL5.6では商品一覧や商品詳細の表示だけでなく、注文処理についても性能が向上することがわかりました。
注文が集中するようなECサイトでは、注文の処理性能は重要な性能指標になりますので、より新しいバージョンのMagentoの利用を検討したほうがいいかもしれません。