Magento Cloud Performance Test 2020

I haven't made a performance test of the Magento Commerce Cloud for a long time. And now I have one business that needs help with Magento's bad performance.

Image for post
Image for post

This merchant is hosted on Magento Commerce Cloud and pays $150K annually just for hosting. What's interesting, the client doesn’t have many server resources, however, he has an expansive cloud price because of big estimated revenue. If you are a successful online retailer Magento Cloud is not for you it will cost a lot and also can kill any successful online business. However, Magento agencies will sell it to you because they don’t care about web performance. Their work is data entry, theme/skin, and extension installation. Previously merchants migrated from Magento 1 and had successful online stores in Hollywood California. However, after migration to the “better” and “modern” Magento 2 online revenue dropped by 85% and mainly because of bad Magento Cloud Performance and Magento Frontend performance. M2 using Require Js with Page Builder and load scripts asynchronously and randomly and it is killing good user experience with the site.

Let's check Magento 2 web site performance

  1. Category Page
  2. Product Page
  3. Cart page
  4. Frontend performance, JS bundling disabled

Magento Commerce Cloud Category Page performance.

Category with 1 product

Image for post
Image for post

Response time: 3388ms

Regular Category 15 products per page:

Image for post
Image for post

Response time: 4867ms

As we can see performance is no really grating.

I hade discussion with Magento funs and solutions engineers they are telling:

“Merchants don’t really care do some tech folks call the solution legacy or cutting edge. If it helps them to get things done they will go.”

As we can see Merchant has Magento 2 solution and “things done” however we can see:

Merchants have chosen Magento 2 to solve a few of basic eCommerce problems “to get things done”. Now they are having 100,500 complex software problems.

After Succesful implementation of Magento 2 web site merchants have backend performance, frontend performance, cloud, zero downtime deployments, 3d party extension, and core bug fixes issues including app scaling issues

Let's check the Category page load under load 2,5, and 10 simultaneous customers.

2 simultaneous visitors;

Image for post
Image for post

It is requested to the same category page if the request will be to different cat pages Performace shul be worse.

5 visitors:

Image for post
Image for post

Result: 9065ms

10 potential buyers:

Image for post
Image for post

Result: 6868 however worst result is 13208 ms

Example of response time Category page 24 products AWS hosted Web Site:

Image for post
Image for post

“Response time is, quite simply, critical for web applications. A faster web app — which also uses less memory, reducing the likelihood of page swapping and resulting performance problems — accomplishes three things:
Makes users happier and more likely to visit and complete tasks on your site, such as reading articles, getting product information, hailing a jitney, renting a spare room, or buying things. That is, the reasons you created the site or app in the first place.
Enables a given server to support more users without running the risk that it slows down or even keels over from additional users. Postponing doom is always a good thing.”
NGINX, Inc.

A many reasons why the Magento cloud is so bad performant system.

The first reason it Magento 2 it seld it is 3–5 times slower than M1 because of new architecture which produces new issues.

The second issue is the Shared Magento Cloud / Platform SH architecture. Each instance hosts the entire application stack.

Magento Cloud host has several virtual cores (vCPU) per server (2 threads per 1 physical CPU — Intel's Hyperthreading technology) with everything running on it. PHP, MySQL, Galera Cluster, Redis, ElasticSearch, Java, HaProxy, Nginx, ZooKeeper, heavy Magento Crons, RenitMQ, Docker, NewRelic, BlackFire, GlusterFS Network File Server, other stuff and all these infrastructure elements run twice x2(production and staging share the same instance). And all these processes load several physical cores (M4 instance: 2.4 GHz Intel Xeon E5–2676 v3 Haswell)…

Third issue Magento cloud doesn't have any infrastructure monitoring tools. To provide some tools to Merchants Magento Cloud uses New Relic however new it produces 50–200% performance overhead especially with giant 5 million lines of PHP code monolith like Magento with 500 — 2000 MySql queries per page and 100–120K Redis calls per request.

Product Page test:

Image for post
Image for post

OMG Simple Configurable product is heavier than Category Page with 15 products. OMG.

AWS hosted Magento product page performance: 536ms

Image for post
Image for post

Yes Magento cloud and Magento itself have Varnish and FPC however it doesn't speed up page generation it works only for pages in the cache. Mostly FPC/Vanish makes faster only most viewed pages - Home Page only;) By the way, this merchant uses redundant workaround “cache wormer” and it doesn’t help to achieve better user performance 80% of the page views are search pages.

Magento Comunity FPC visualization:

Image for post
Image for post

In the next post, you will see the performance of this web site after migration to the single C5.xlarge instance with separate RDS DB with Performance insight performance monitoring:

Image for post
Image for post
Magento 2 Smallest and fastest infrastructure with vertical scaling

Frontend Magento Performance:

Image for post
Image for post

Magento uses Require Js and doesn’t have JS load prioritization that causing the issue. Also, JS Bundling is not so good to load tons of Magento JS KnockoutJS components templates via HTTP. Magento Frontend is not modern any more since 2016.

Written by

Magento/APP Cloud Architect. Melting metal server infrastructure into cloud solutions.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store