Oracle Magento 2 Cloud on ARM instance Performance. Ampere Server is an Adobe Commerce Cloud killer!
Let’s test the Oracle Cloud ARM Ampere server performance with Magento 2 and compare it with the Adobe Magento Commerce Cloud solution.
We will use a new Oracle Cloud ARM instance offering.
To create a Magento instance we need :
Step 1: Select OS.
Step 2: Select instance
We have the option to use Virtual Machines.
Or Dedicated Bare Metal Machine
We are selecting Bare Metal Machine with 160 OCPUs
Bare metal compute instance gives you dedicated physical server access for the highest performance and strong isolation.
Instance Specification:
Shape Name: BM.Standard.A1.160
OCPU:160
Memory (GB):1024
Network Bandwidth (Gbps): 100
Max. Total: 256
What is the Ampere Oracle ARM processor?
Cloud-Native Server Processors
Ampere’s Altra® family of processors are designed to deliver on predictable performance, high scalability, and power efficiency. Ampere’s leadership on all these metrics delivers exceptional results and lowers the TCO for Cloud Service Providers.
Predictable Magento Performance
The combination of single-threaded cores, large dedicated L1,L2 caches, and non-blocking fabric deliver predictable Magento performance throughout the period of workload execution.
High Scalability
Optimization of cores and all the critical IP for Cloud Native workloads result in delivering the highest core count server processor in the industry.
Power Efficiency
Power-efficient architecture and design innovations directly result in the highest core density per device and rack.
Altra® Multi-Core Server Processors
Ampere server processors are a complete system on chip (SOC) solution built for Cloud-Native server applications. The device supports up to 128 Arm 64-bit cores, 8 Channels of DDR4 and 128 Channels of PCIe Gen 4 interfaces.
- Up to 128 cloud-optimized 64 bit Armv8.2 cores
- Up to 3.3GHz frequency of operation
- 8×72 bit DDR4 3200, ECC Support, 4TB Capacity
- 128 PCIe Gen4 lanes
- Coherent multi-socket support
- I/O and Interrupt Virtualization
- Enterprise server-class RAS
But we are having an issue during instance creation:
You don’t have permission to create a new virtual cloud network. Required permission: VCN_CREATE
After fixing this issue I’m having another one:
Instance ocid1.instance.oc1.phx.anyhqljtzo4xwaqcgpzoz63lwz5xntwj75w7qyhqjgeq6lrdghg4wby4wxza does not support pv encryption in-transit.
After fixing this issue, I have another issue :
You’ve reached your service limit in this availability domain of 16 OCPUs (vCPUs), 96 GB memory for StandardA1 VM, and bare metal instances. Try launching the instance in a different availability domain, or select a different shape series.
To fix this issue, you need to raise a service limit increase request.
Oracle ARM instance Pricing :
So the Price of the bare metal Magento Cloud server will be:
120 * 0.01 * 24 * 30 = $864 +
1024 * 0.0015 * 24 * 30 = $1106
Total cost will be around 1970$ per month
For example, Adobe commerce cloud with 60 physical CPUs costs around $10K+ per month. However, we can’t compare good Oracle with Magento Cloud broke white-labeled Platform.sh hosting with many performance issues because of the wrong architecture. In our case, we have the fastest possible solution. Single server implementation with 160 physical CPUs will be much faster than 160 virtual CPUs Magento cloud. So, even big merchants can have a single server with the performance of auto-scaling solutions and without an additional head each. Now customers can use bare-metal ARM instances and don’t overpay for the cloudy scummy solutions.
Oracle has many nice features comparing to AWS like:
- stack creation — provision a group of related cloud services
- projects
- upload own SSH key
- dynamic, flexible instance sizes when AWS has predefined instances
While I’m waiting for Limit Increase Request, I’m running these on a virtual server with 14 cores:
Install Magento 2 on ARM processor Linux Operation System
We need to install Magento on our ARM instance. For this purpose, we are having a special toll it helps install Magento on AWS Linux on Cento x86 and ARM architecture.
With this solution to install Magento 2 server, you need just 2 commands:
ssh opc@129.146.116.13wget https://github.com/Genaker/Magento-AWS-Linux-2-Installation/archive/refs/heads/master.zipunzip master.zipcd ./Magento-AWS-Linux-2-Installation-master/sudo bash ./install-all.sh
Done!
We will test the performance of different PHP versions on the Oracle Cloud ARM A1 instance
PHP 5.4
The code took 0.96806883811951 seconds to complete.
The code took 0.96724605560303 seconds to complete.
The code took 0.96572709083557 seconds to complete.
The code took 0.96832799911499 seconds to complete.
The code took 0.9669930934906 seconds to complete.
The code took 0.96564698219299 seconds to complete.
PHP 7.3
The code took 0.22321605682373 seconds to complete.
The code took 0.21975994110107 seconds to complete.
The code took 0.21949601173401 seconds to complete.
The code took 0.22951197624207 seconds to complete.
The code took 0.2209620475769 seconds to complete.
The code took 0.22537302970886 seconds to complete.
The code took 0.21711421012878 seconds to complete.
The code took 0.21877193450928 seconds to complete.
The code took 0.22287702560425 seconds to complete.
PHP 7.4
The code took 0.12914681434631 seconds to complete.
The code took 0.12046098709106 seconds to complete.
The code took 0.12042379379272 seconds to complete.
The code took 0.12111687660217 seconds to complete.
The code took 0.12045693397522 seconds to complete.
The code took 0.12115812301636 seconds to complete.
The code took 0.12059092521667 seconds to complete.
The code took 0.12073802947998 seconds to complete.
The code took 0.12066292762756 seconds to complete.
The code took 0.12056398391724 seconds to complete.
PHP 8
The code took 0.084527969360352 seconds to complete.
The code took 0.085355997085571 seconds to complete.
The code took 0.083014965057373 seconds to complete.
The code took 0.085724830627441 seconds to complete.
The code took 0.083315134048462 seconds to complete.
The code took 0.08372688293457 seconds to complete.
The code took 0.082921028137207 seconds to complete.
The code took 0.084840059280396 seconds to complete.
The code took 0.083343029022217 seconds to complete.
for example, Adobe Commerce Cloud has the next PHP performance
PHP 7.3
The code took 0.11807990074158 seconds to complete.
The code took 0.11982607841492 seconds to complete.
The code took 0.11994504928589 seconds to complete.
The code took 0.11821389198303 seconds to complete.
The code took 0.11748194694519 seconds to complete.
The code took 0.12114000320435 seconds to complete.
The code took 0.12265801429749 seconds to complete.
The code took 0.12246084213257 seconds to complete.
The code took 0.12888312339783 seconds to complete.
Redis 6 Oracle A1 performance
====== GET ======
100000 requests completed in 1.24 seconds
100 parallel clients
3 bytes payload
keep alive: 1
host configuration “save”:
host configuration “appendonly”: no
multi-thread: noSummary:
throughput summary: 80971.66 requests per second
latency summary (msec):
avg min p50 p95 p99 max
0.635 0.136 0.583 0.903 1.279 6.143
I’m waiting more than 12 hours for a limit increase.
Then have revised the message from Oracle :
Hello Yehor,
We are very sorry to say that currently we do not have the A1 bare metal with 160 CPU and 1024 RAM available in OCI.
Our backend team is working on it and will provide the same in near future but as of now no ETA for the same.
Hence shall I close the SR as nothing can be done as of now for the same.
If you have any other issue/queries please open a new SR to engage our engineer . We will be happy to help you.
When I have a 120 CPU ARM server, we will test throughput Magento 2 Open Source Fork () vs. Adobe Commerce Cloud.
After + 1 wasted day, Oracle Cloud Support asked to connect Sales team:
Hence as mentioned earlier to increase your current default limits, please contact our sales department that can discuss your projects and provide guidance to the best course of progression.
In the age of information technologies, I would look for a salesperson to create an instance. It is really we on the age of the IT bureaucracies. It is easier to buy a gun than a server.
The other support ticket has:
If you want to increase your limit , you need have call to our sales department that will discuss your projects, get update your plan or develop a POC and provide guidance to the best course of progression.
After 2 weeks of struggling with the support, I received 160 vCPU bare metal instances. But it has on disadvantages you should overpay for 1024 Gb of RAM.
Oracle Cloud price for the Ampere Magento instance is :
Compute — Virtual Machine Instances:
Product Unit Price MetricCompute
Ampere A1 — OCPU $0.01 OCPU Per Hour Compute
Ampere A1 — Memory $0.0015 Gigabyte Per Hour
So, Bare metal with 160vCPUs and 1024Gb of ram will cost — 160 * 0.01 * 24 * 30 + 0.0015 * 1024 * 24 * 30 = 1154 for CPUs + 1105,92 for RAM = $2257 per months
If you have a successful business and are suffering from the Adob Commerc Cloud Slow performance, it is a reasonable price because Magento cloud’s starter price for 6 physical CPUs (12 vCPUs) is 6500$ per months $77K+ yearly.
Adobe Magento Commerce performance
Until your app can’t work on a single server multi-server infrastructure doesn’t have any sense and adds only additional complexity and network overhead. If your app can’t work on a single-serve you should optimize the code first. A single Redis or MySQL query response time will be 1ms whereas on a single server it is 0.1ms. 200 SQL requests will add 200ms to TTFB.
Adobe Commerce Cloud Pricing:
It is TOP Secret. Adobe Doesn’t want you to know the real cloud price you need contact them and they will try to sell it to you right away. They can give you discount or free year but any way you should avoid Magento Clous Commerce as a hell.
Magento Azure Microsoft Cloud Deployment
You can buy Azure HB120rs_v3 — High performance compute — 120vCPU for $2,628.00 and you don’t need silly and expansive Adobe Commerce Cloud.
Azure Magento Terraform Provisioning Git Hub repo:
Magento AWS Amazon Cloud Deployment
On AWS you can buy C6g.16xlarge — 2.5 GHz AWS ARM Graviton2 Processor with 64 physical CPU and 128 GiB memory for $1600/months or $1000/months with the year of reservation or $640/months with 3 yers of reservation. Or 3.5 GHz Intel Xeon 8375C (Ice Lake) with 128 virtual(threads)CPU with 256GiB memory for $4000/months or $2630/months with anaul reservation.
With the magento cloud you will pay $10K+ per month for the smallest servers and bad magento performance on shared infrastructure where everything (PHP, MySQL, Redis, ElasticSearch, Crons) installed on a single server.
However, it is always better start with the maximum size of the virtual instance instance than to buy Adobe Commerce Cloud:
80 * 0,01 * 24 * 30 + 0.0015 * 80 * 24 * 30 = 570 + 86,5$ = 656.4 $
Note: After using this instance for several weeks actually cost was $17.59 instance + $0.06 storage per day or $529.5 per month:
Or 656.4 /80= 8.20$ per CPU per month. However, most of the merchants need 12 vCPU with easy scaling vertically up to 128 vCPUs during sales events.
Using Virtual server, we can save on RAM. We don’t need 1024Gb of memory to run Magento if to use Dedicated Server. Magento 2 is CPU intensive because of the bad designed code and architecture.
So, we have the next Oracle Magento configuration: 80 CPUs and 80 GB of RAM.
Install Magento Oracle Cloud
So to install Magento on Oracle, we need 3 simple steps :
- Connect to the Instance
ssh opc@129.146.113.55
2. Download Server installation Script
wget https://github.com/Genaker/Magento-AWS-Linux-2-Installation/archive/refs/heads/master.zip && unzip master.zip
cd Magento-AWS-Linux-2-Installation-master
3. Install Required Software
sudo bash ./install-all-aws-linux2-arm.sh
4. Install Magento
/var/www/html/magento/bin/magento setup:install — base-url=http://${MAGE_DOMAIN}/ — db-host=${DB_HOST} — db-name=magento2 — db-user=${DB_USER} — db-password=${DB_PASSWORD} — admin-firstname=Magento — admin-lastname=User — admin-email=user@example.com — admin-user=admin — admin-password=admin123 — language=en_US — currency=USD — timezone=America/Chicago — use-rewrites=1
5. Install Sample Data
git clone https://github.com/magento/magento2-sample-data.git
cd magento2-sample-data
git checkout 2.4.2
php -f dev/tools/build-sample-data.php -- --ce-source="/var/www/html/magento/"
Let’s check single-page performance.
Apach Benchmar result: ->
80 concurrent request 800 requests total:
Result: 516 ms page response time
60 concurrent request 600 request total:
Result: 359ms page response time
As we can see 60 concurrent requests is the best load for this server.
200 concurrent requests:
You can see unique screenshot of the server load under 100 concurrent request :
if to use the Bare Metal Amper server, this number will be 120 concurrent requests.
Let's Check Adob Commerce Cloud.
Adobe Commerce Cloud Performance
as an example, we will use the firs website I have found on the Adobe website.
Adobe Lafayette 148 Sucess Story
In the wake of the pandemic, Lafayette 148 needed to put some long-term plans into action — and develop additional revenue streams. In June of 2020 they quickly announced plans to launch a new division of the business called AtelierDirect. The company enlisted a group of select stylists and brand ambassadors in key markets around the country to offer a new, private selling and styling service to clients craving a more curated, intimate shopping experience.
AtelierDirect was built with the help of Adobe Commerce, which enabled Lafayette 148 to create a portal — or “shadow website” — where its AtelierDirect stylists could conduct direct sales in real time at the customer’s home or office.
“What was really exciting is that we were able to leverage the solution to turn AtelierDirect into a reality within just a matter of weeks,” said Schuster. “And it’s just been incredible. It has made up the difference in term of losses when the retail stores were closed at the height of the pandemic.”
AtelierDirect’s stylists work with clients one-on-one, pulling a selection of items based on their size, lifestyle, and preferences, all of which are gleaned from customer data the company has accumulated over the years. Stylists can look up the purchase histories of customers to offer personalized suggestions, such as how to pair new pieces of clothing with their existing wardrobe.
AtelierDirect clients can make an appointment for the stylist to visit them at home or in the office. They can also visit the Lafayette 148 AD SoHo Studio in New York City. The service lets Lafayette 148 customers shop for clothing in the environment most comfortable for them. Currently, the company offers the service in 25 markets, and plans to expand in 2021.
a single request
Result: 1240 ms
I’m shocked how it is possible 1240 ms per page with 9 products. Our cloud has the same response time under 200 concurrent requests. It is 4 times slower than Oracle Magento Commerce Cloud for 600$ per month. Lafayette 148 cloud hos is more than $20K per month.
Let's test Lafayette 148 Cloud website under the load.
80 concurrent request
Result: 3993 ms page response time
60 concurrent request
Result: 2659 ms page response time
Pivot Table:
So, don’t use Adobe Commerce Cloud. I have never seen good implementation on Magento Cloud. Use normal technologies and hire Software Developers and not Scumming Adobe Partners who will sell you broken stuff instead of developing modern eCommerce.