Magento 2.3 benchmark
A year ago, we released the Magento 2.2 benchmark report. It showed the performance of the clean Magento 2.2.4 installation (with sample data) on Ubuntu 16.04, with PHP 7.0.33, MySQL 14.14, with FPC enabled. It showed the response times of the category page, the cart and the checkout on three different Digital Ocean droplets.
Today we are going to run an almost identical load test on Magento 2.3.0. The only difference will be the PHP version - PHP 7.2.11.
The Test Structure
- Go to the category page
- Add product #1 to the cart
- Add product #2 to the cart
- Add product #3 to the cart
- Go to the cart page
- Go to the checkout page
- Send checkout address and shipping information
- Send payment information and place the order
We used 3 Digital Ocean droplets to perform our tests. We used droplets with the following specs:
- 2 vCPUs / 4GB RAM
- 4 vCPUs / 8GB RAM
- 6 vCPUs / 16GB RAM
Magento / Server Specs
Ubuntu 16.04 PHP 7.3.4 MySQL 14.14 Magento 2.3.0 FPC
|Server||Number of Threads||Ramp-up Period||Response Times (ms)||Number of failed checkouts, out of number of checkouts|
|Add Product to Cart||Place order|
|2 vCPUs / 4GB RAM||60||120||517||1274||0 out of 60|
|2 vCPUs / 4GB RAM||150||300||386||979||0 out of 150|
|4 vCPUs / 8GB RAM||60||120||401||1036||0 out of 60|
|4 vCPUs / 8GB RAM||150||300||401||992||0 out of 150|
|4 vCPUs / 8GB RAM||200||300||431||1084||0 out of 200|
|4 vCPUs / 8GB RAM||300||300||446||1090||0 out of 300|
|4 vCPUs / 8GB RAM||400||300||516||1374||0 out of 400|
|4 vCPUs / 8GB RAM||500||300||3332||42433||218 out of 500|
|6 vCPUs / 16GB RAM||400||300||437||1189||0 out of 400|
|6 vCPUs / 16GB RAM||500||300||419||1142||0 out of 500|
|6 vCPUs / 16GB RAM||600||300||455||1894||0 out of 600|
|6 vCPUs / 16GB RAM||700||300||491||27981||0 out of 700|
|6 vCPUs / 16GB RAM||800||300||1462||47824||103 out of 800|
For better understanding the table columns and the results meaning - please read our previous article Magento 2.2 Benchmark. It explains all the definitions in detail. It also helps you to find the rows in the table that are relevant for your server load.
Looking at the results table, it seems that even the weak 2 vCPUs / 4GB RAM server can handle quite a heavy load of 150 simultaneous users sessions (where each session lasts for up to 5 minutes) for Magento 2.3. In other words, if you have a new user coming every 2 seconds to your website and his session lasts for 5 minutes - the 2 vCPUs / 4GB RAM can handle it flawlessly.
If you upgrade your server to 6 vCPUs / 16GB RAM - it will be able to handle a crazy load of 600 simultaneous users, with a session length of 5 minutes. That is 2 new user sessions every second.
Magento 2.3 vs Magento 2.2
A brief look at the Magento 2.3 benchmark results table compared to the Magento 2.2 benchmark results shows that Magento 2.3 performs unbelievably better than Magento 2.2.
For example, looking at the second result in both tables we can conclude that a 2 vCPUs / 4GB RAM server can’t handle a load of 150 simultaneous user sessions on Magento 2.2. In fact it fails miserably - the average order placement takes almost a minute, and 46 out of 150 order placements fail!
Meanwhile, on Magento 2.3 the same 2 vCPUs / 4GB server seems to complete all the sessions in a lightning-fast manner - 1 second per order placement. It is 50 times quicker than for Magento 2.2.
It seems that Magento 2.3 performs very well even on weak servers. It is very surprising since Magento added many new features to the 2.3 version.
Comparing Magento 2.3 to Magento 2.2 we get shocking results - the checkout is 50 times quicker on Magento 2.3. It seems that upgrading to Magento 2.3 is the way to go!
Side note on the speed improvement
Please note however that the speed improvement might have resulted from the PHP version upgrade and not from the Magento version upgrade. Unfortunately, it is impossible to check, because Magento 2.3 only runs on PHP 7.2.