Oracle Magento 2 Cloud on ARM instance Performance. Ampere Server is an Adobe Commerce Cloud killer!

Yegor Shytikov
12 min readJun 11, 2021

--

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: no
Summary:
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:

Real Oracle Cost

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 :

  1. 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.

--

--

Yegor Shytikov
Yegor Shytikov

Written by Yegor Shytikov

True Stories about Magento 2. Melting down metal server infrastructure into cloud solutions.

No responses yet