OCI I/O-Performance with E-Business Suite (Part 1/3)

OCI I/O-Performance with E-Business Suite (Part 1/3)

Johannes Michler PROMATIS Horus Oracle


Senior Vice President – Head of Platforms & Development

While moving a customer from On-Premises to Oracle Cloud Infrastructure, we recently conducted some performance testing before the final cutover. For the E-Business Suite database server, a physical box with 16 CPU cores was migrated to a VMStandard E3.Flex VM with 12 OCPU. From a CPU performance perspective, the new VM was much faster than the old box. Unfortunately, this was not the case on the I/O performance side.

Let's take a look at how we measured the I/O performance and what the problem was. Then, in 2 more blog posts, I will look at two different approaches to solving this problem and their corresponding performance.

OCI I/O-Performance

Oracle gives a fairly detailed description of the I/O performance of block volumes (and that's all we are considering at the moment, since that’s the default location of the database) in OCI.

Basically there are 3 factors to consider for both throughput and IOPS:

  • Network-Speed of the Compute Instance (for E3 this is 1GBit/OCPU)
  • Performance Class can either be "Lower Cost" (1TB costs 26$ per month), "Balanced" (43$/TB) or "Performance" (60$/TB). The more expensive option you choose, the better the performance
  • Size of the volume (up to a specific cut-off size)

The exact relationships / numbers are listed in the following table:

For the "Balanced" Block Volume type this means (depending on the volume size):

E-Business Suite Cloud Manager provisioned Database (on Compute)

When creating a compute instance to run the Oracle database (12c or 19c) for an E-Business Suite instance (12.1 and 12.2), Oracle creates only one large block volume containing both the Oracle home database and all of the data from archive log files. For one customer this was a volume of 4.5 TB. Unfortunately, this means that "only" a maximum throughput of 480MByte/s at 25,000 IOPS is available. Of course, this is only true if the compute instance has enough network bandwidth. In the case of E3.Flex instances, this means that at least 4 OCPUs are required (better 6 to have some buffer).

Measuring performance

There are many ways to measure the I/O Performance on Linux / for Oracle Databases. A convenient way is to let the database measure the performance on its own: This has the advantage that it also works for ASM based storage, as we'll see in the next episode.

The following program performs a short performance test:

SET SERVEROUTPUT ON
DECLARE
l_latency PLS_INTEGER;
l_iops PLS_INTEGER;
l_mbps PLS_INTEGER;
BEGIN
DBMS_RESOURCE_MANAGER.calibrate_io (num_physical_disks => 7,
max_latency => 20,
max_iops => l_iops,
max_mbps => l_mbps,
actual_latency => l_latency);
DBMS_OUTPUT.put_line('Max IOPS = ' || l_iops);
DBMS_OUTPUT.put_line('Max MBPS = ' || l_mbps);
END;
/

This gives us the numbers we would expect in several successive runs (on a 6 OCPU instance with a single 3.5 TB block volume of type "balanced performance"):

Max IOPS = 23833
Max MBPS = 448

When changing from "Balanced" to "Higher Performance" the numbers get a bit better (even though I expected the IOPS to increase even more):

Max IOPS = 28426
Max MBPS = 468

Get better

The obvious approach to improving this is to split up a block volume into possibly smaller block volumes. When using "Balanced Performance", it should be sufficient to reduce each block volume to about 1 TB in order to achieve "maximum throughput". To achieve maximum IOPS throughput, it might be even better to divide the single block volume into pieces of 500 GB each.

In two more blog posts, I'll describe how this can be achieved with either Oracle Automatic Storage Management (ASM) or by using the Linux Volume Management (LVM). Spoiler: With both methods the performance can be accelerated by a factor of 3-5 very easily and without additional costs.

OCI I/O-Performance with E-Business Suite (Part 1/3)

SOA Suite 12.2.1.4 on Oracle Cloud Infrastructure (OCI)

Johannes Michler PROMATIS Horus Oracle


Senior Vice President – Head of Platforms & Development

Recently we have seen a lot of our customers implementing Oracle SOA Suite on Oracle Cloud Infrastructure - some upgrading from earlier releases of the SOA Suite, others doing a new implementation of an integration platform based on SOA Suite. This blog will have a look at typical customer situations and how we brought them onto a new SOA integration platform on OCI from a high level perspective.

There is also a recent Oracle Video describing SOA on OCI.

New SOA Suite Customer

The situation we saw with this customer was as follows:

The customer had previously implemented hundreds of 1:1 integrations between their On Premise (in various, globally distributed data centers) and Cloud Applications and was searching for an integration platform around an Enterprise Service Bus. The basic idea is to define Canonical Business Objects that can then be exchanged between the different systems more easily than connecting everything individually.

The customer had neither Oracle Database licenses (for the SOA Suite Metadata repository) nor Oracle SOA Suite licenses. Using Oracle Integration Cloud (OIC) was not (yet) an option, mainly due to complex Event Hub patterns.

Given the above prerequisites, the customer had three options to license Oracle SOA Suite:

In consultation with the Oracle SOA Suite product management (many thanks to their great help during this evaluation and the subsequent project), the customer decided to subscribe to the SOA Suite on OCI Marketplace. Although this was very early after Oracle published the images, we faced no major issues and this approach was:

  • much cheaper than buying On Premise SOA and Database licenses to run them in an On Premise or Cloud Data center and
  • brought us a more up to date and longer supported version (12.2.1.4) than we would have gotten with SOACS

Customer doing a SOA Suite Lift And Shift

The situation for this customer was different from the previous one:

The Customer has been using SOA Suite for 10+ years to implement all integrations around their central ERP System "Oracle E-Business Suite 12.1.3". They were initially 10g customers who had upgraded to 12.1.3 and then last year to 12.2.1.3. Their hardware and operating system (SUSE Linux 11) were both running out of support. SOA Suite Release 12.1.3 itself will soon also run out of support. The customer runs their E-Business Dev- and Test Environments on OCI and plans to move EBS PROD as well.

Given the above, the customer had evaluated the following options in more detail:

  • Buy new "On Premise" hardware and do a new 12.2.1.4 installation of SOA Suite there
  • Do a "custom" installation of both SOA Suite 12.2.1.4 and a Database 19c for the Metadata Repository on OCI
  • Use the SOA Suite on OCI marketplace image in the Bring Your Own License (BYOL) fashion: https://cloudmarketplace.oracle.com/marketplace/en_US/listing/74792101

Together with the customer, we finally decided to do a "custom" installation of SOA Suite on OCI. Basically the reasons were:

  • With the marketplace images it is not possible to use a custom installed Oracle Database as the metadata repository. However, using DBaaS for OCI also in the BYOL model is significantly more expensive than using just OCI Compute (and e.g. the 19.7 database marketplace image)
  • On Premises, we had two SOA environments installed on a single machine due to a limited number of SOA Suite licenses. This gave us more flexibility/performance than having two separate machines. This setup is not (yet) supported by the marketplace image
  • The marketplace image has a lot of pre-configured setup (e.g. B2B) that did not fit our needs / previous setup

Summary

For both customers running SOA Suite on OCI, it helped them to create state-of-the-art integration architectures using SOA Suite on OCI. So far, all instances have performed in a very stable manner at considerably lower costs than if the customers had run Oracle SOA Suite in an On Premises data center.

 

OCI I/O-Performance with E-Business Suite (Part 1/3)

Using latest flexible OCI E3 shape with E-Business Suite on OCI

Johannes Michler PROMATIS Horus Oracle


Senior Vice President – Head of Platforms & Development

Recently Oracle announced the availability of a new CPU shape E3. Flex in its Oracle Cloud Infrastructure - see here. The announcement promises an increase in performance of around 50% compared to the current Intel CPU (e.g. in VMStandard2.x) at the same or lower cost. Reason enough for me to take a closer look at this in the area of operating the E-Business Suite on such instances.

First Attempt: Changing an existing instance

For a first test I tried to change the shape of an existing (VMStandard2.4) instance to E3. Unfortunately, this failed because the image I used for this instance was too old (3 months old EBS@OCI instance):

Since it is an image provided by Oracle, it is unfortunately not possible to overwrite/change it - even if I had patched my Oracle Linux to be compatible with flexible shape. The only workaround I see would be to create a custom image and adjust it to be compatible with the E3.Flex shape.

Second Approach: Cloud Manager 20.1

Oracle recently published Oracle E-Business Suite Cloud Manager 20.1, more precisely 20.1.1.0.1. Unfortunately, even there I am not able to choose E3.Flex shapes for newly created (or restored from Backup) E-Business Suite instances:

I am working with Product Management/Development for the Cloud Manager tools to make this available.

Nevertheless, there is some good news: When creating a new environment with a VM.Standard2.x shape, a current OS image is used that is actually compatible with the E3.Flex-Shapes:

So after creating the instance (which is still done with the "old"/"slow" Intel CPU) you can change the shape via the OCI console (which triggers a reboot of the VM).

Note: Unfortunately you cannot convert an E2.X VM into the E3.Flex shapes, this gives the following error:

Requested shape: VM.Standard.E3.Flex belongs to a hardware series that is not compatible with the current shape: VM.Standard.E2.1

However, now that I have been able to get an E3.Flex instance, I have done some Performance Comparisons using sysbench (synthetic CPU performance) and OraPub Speed Test 3.

Performance with VMStandard.E2.4

As a reference the VMStandard.E2.4 gave me the following orabench performance on a 19c database instance:

Speed Factor (higher is faster) : 184.655 <----

Performance with VMStandard.2.4

sysbench

With the following parameters:

[oracle@dbupg9db ~]$ sysbench --test=cpu --threads=8 run

I managed to get the following CPU Speed:

Events per second: 5500.55

orabench

The orabench value of the VMStandard2 CPU is appx. 40% higher than the E2 instance:

Speed Factor (higher is faster) : 255,4681 <----

VMStandard.E3.Flex (4 Cores, 64GB memory)

But now let's have a look at the performance of the brand new E3 CPU.

orabench

The orabench Speed factor is appx. 20% faster than the Intel Xeon CPU

Speed Factor (higher is faster): 305,3364 <----

sysbench

The sysbench compares similar; also there we get appx. 20% more performance:

[oracle@dbupg9db ~]$ sysbench --test=cpu --threads=8 run
events per second: 6777.76

Pricing

It becomes even more interesting when comparing the value per price. Let's take a look at the "per Cent" performance with orabench with the 4 benchmarks mentioned above (all tested on 4 core CPUs):

 

Summary

  • The new E3 shape has a similar "performance per price" as the old E2 shape had. The "value" and "absolute performance" is much better than the Intel Xeon VMStandard.2 cores.
  • This makes OCI an even better alternative to AWS in terms of "performance per price".
  • Finally, the higher "absolute" performance values are a big benefit when operating e.g. Oracle Databases licensed "per core". In that scenario, I have preferred VMStandard2.x over the E2 shapes in the past. But now I can also choose the AMD E3 Epyc CPU.