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.
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
- Category Page
- Product Page
- Cart page
- Frontend performance, JS bundling disabled
Magento Commerce Cloud Category Page performance.
Category with 1 product
Response time: 3388ms
Regular Category 15 products per page:
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;
It is requested to the same category page if the request will be to different cat pages Performace shul be worse.
10 potential buyers:
Result: 6868 however worst result is 13208 ms
Example of response time Category page 24 products AWS hosted Web Site:
“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.”
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:
OMG Simple Configurable product is heavier than Category Page with 15 products. OMG.
AWS hosted Magento product page performance: 536ms
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:
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:
Frontend Magento Performance:
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.