Together with our friends from Enginatics, we recently performed a bunch of performance benchmarks, especially of the CPU performance in the context of an Oracle E-Business Suite on various Oracle Database Releases. This blog will give an overview on the results we measured.
We ran four benchmarks on as many E-Business Suite instances we could get our hands on. Each of these benchmarks has some specific characteristics. One of them is a synthetic one, the others are calculations of SQL or PL/SQL or “pure math” within the Oracle Database. All four benchmarks primarily compare single-thread performance; this makes sense for two reasons:
- Licensing of the database is typically done “by CPU”. So the faster the individual core, the less cores are needed to perform a specific workload.
- Many operations within the E-Business Suite massively depend on single-thread performance and do not really profit from many cores when run “just once”.
This is a synthetic benchmarking running on the OS measuring the CPU performance. The benchmark can be downloaded from https://www.cpubenchmark.net/ – the Linux version is even free. After downloading the benchmark and installing the required libraries, the benchmark can be run and after some minutes produces a result as follows:
Note: To measure single thread performance, set the processes parameter to 1 and further run the tests multiple times for accuracy:
./pt_linux_x64 -p 1 -i 5 -d 3
The tool has a comprehensive database of results there: https://www.cpubenchmark.net/singleThread.html#server-thread
The remaining three benchmarks are provided as part of the Blitz Report tool, a powerful solution to extract Excel data from E-Business Suite instances.
Benchmark 1 is a report to measure a database server’s CPU speed, mainly for PL/SQL processing.
This report generates an output file of 500,000 out of a total of 561,495 records from a cartesian product based on EBS standard FND tables. These tables contain the same data for all EBS clients and the report can be used as a benchmark to test the database server’s CPU performance.
As the query itself should complete in less than a second with modern CPUs, most of the execution time is spent in PL/SQL code to generate the Blitz Report output file.
To measure meaningful results, there should be enough SGA memory assigned to ensure that the execution time is entirely spent on CPU and not IO related wait events (to be confirmed using the DBA SGA Active Session History report).
The second benchmark is similar in that it also mainly measures PL/SQL speed.
This report generates an output file of 200000 records from dual.
As the query itself should complete in less than a second, most of the execution time is spent in PL/SQL code to generate the Blitz Report output file.
This benchmark report measures a database server’s CPU performance for arithmetic calculations by calculating about 40 million square roots.
The following table shows the result of the various benchmarks:
The data shows:
- The new OCI shapes E4.Flex (AMD) and Optimized3.Flex (Intel) are very competitive. Regarding single thread performance, they are only beaten by an “End-User” Ryzen CPU.
- The E4.Flex provides a considerably better performance per value than Standard3.Flex and, in most situations, is probably more attractive than Optimized3.Flex.
- Even the latest Exadata CPU is not faster than those shapes.
- Even the fastest AWS shapes are considerably slower than the OCI shapes.
- The SQL3 Performance does look inconsistent. This is probably related to special instruction sets available in some of the CPUs. However, for most DB operations within an E-Business Suite, this aspect is not very relevant.
It’s not all about Single Thread
Of course, single thread performance is not the only relevant factor when running an E-Business Suite. Very large instances not having enough memory may be significantly more important. With the flexible shapes in OCI, though, this can be easily handled by assigning a lot of memory:
Even with a lot of memory for SGA/PGA, situations still occur where the IO performance is very important. Having a cloud vendor that provides flexibility regarding IO performance may help:
See my blog posts on IO performance (https://www.promatis.de/2020/12/14/oci-i-o-performance-with-e-business-suite/) for more details.
And in such “real world” scenarios, obviously Exadata proves to be considerably better than when just looking at the single thread performance.
Also, in some scenarios, the overall performance of all available CPU cores / threads may be more important: Some of our customers are running web applications with thousands of parallel users served through ORDS; in doing so, the single thread performance is not the most important thing. Even something like SPARC T7 with good core factor / hard partitioning capabilities may be the better choice compared to much quicker X86 CPUs.
Finally, the core factor plays a very crucial role, especially in cloud environments. For more details, see here.
The benchmarking data presented above shows that even though “Moore’s Law” no longer has a doubling of performance every 18-24 months but “only” a reduction of sizes / an increase of the number of cores, improvements have still been made to single thread performance in recent years. Compared with a SPARC-T7 (from 2015), an up-to-date CPU such as the latest E4.Flex on OCI is more than four times faster. When running E-Business Suite on a cloud platform such as OCI, a shape with better performance can be used quite easily and at zero or very limited cost: If the compute image used to run E-Business Suite is compatible with the new CPU/Shape, then a significant performance boost (e.g. 70% improvement when going from VMStandard2 to E4.Flex) may actually even reduce the infrastructure costs. If the image is not compatible with the new shape, then the migration process will be slightly more complicated but still “worth it”.