Infrastructure at your Service

Franck Pachot

Oracle Public Cloud: 2 OCPU for 1 proc. license

By Franck Pachot

I’ve blogged recently about the Oracle Core Factor in the Clouds. And then, in order to optimize your Oracle licences, you need to choose the instance type that can run faster on less cores. In a previous blog post, I tried to show how this can be complex, comparing the same workload (cached SLOB) on different instances of same Cloud provider (Amazon). I did that on instances with 2 virtual cores, covered by 2 Oracle Database processor licences. Here I’m doing the same on the Oracle Public Cloud where, with the same number of licenses, you can run on 4 hyper-threaded cores.

Trial IaaS

I’m running with the 30-days trial subscription. I did several tests because they were not consistent at first. I had some runs where it seems that I was not running at full CPU. What I know is that your CPU resources are guaranteed on the Oracle Public Cloud, but maybe it’s not the case on trial, or I were working on a maintenance window, or…

Well, I finally got consistent results and I’ve run the following test on the IaaS (Cloud Compute Service) to do something similar to what I did on AWS, with the Bring You Own License idea.

In Oracle Public Cloud, you can run 2 cores per 1 Oracle processor licence. This means that if I have 2 processor licences, I can run on an instance shape with 4 OCPU. This shape is called ‘OC5’. Here it is:

[[email protected] ~]$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    1
Core(s) per socket:    8
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 63
Model name:            Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
Stepping:              2
CPU MHz:               2294.938
BogoMIPS:              4589.87
Hypervisor vendor:     Xen
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              46080K
NUMA node0 CPU(s):     0-7
[[email protected] ~]$ cat /proc/cpuinfo | tail -26
processor       : 7
vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
stepping        : 2
microcode       : 0x36
cpu MHz         : 2294.938
cache size      : 46080 KB
physical id     : 0
siblings        : 8
core id         : 7
cpu cores       : 8
apicid          : 14
initial apicid  : 14
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm xsaveopt fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips        : 4589.87
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

And here are the results:

Load Profile                    Per Second   Per Transaction  Per Exec  Per Call
~~~~~~~~~~~~~~~            ---------------   --------------- --------- ---------
             DB Time(s):               1.0              30.2      0.00      5.48
              DB CPU(s):               1.0              30.1      0.00      5.47
  Logical read (blocks):         884,286.7      26,660,977.4
Load Profile                    Per Second   Per Transaction  Per Exec  Per Call
~~~~~~~~~~~~~~~            ---------------   --------------- --------- ---------
             DB Time(s):               2.0              25.0      0.00      9.53
              DB CPU(s):               2.0              25.0      0.00      9.53
  Logical read (blocks):       1,598,987.2      20,034,377.0
Load Profile                    Per Second   Per Transaction  Per Exec  Per Call
~~~~~~~~~~~~~~~            ---------------   --------------- --------- ---------
             DB Time(s):               3.0              40.9      0.00      9.29
              DB CPU(s):               3.0              40.9      0.00      9.28
  Logical read (blocks):       2,195,570.8      29,999,381.1
Load Profile                    Per Second   Per Transaction  Per Exec  Per Call
~~~~~~~~~~~~~~~            ---------------   --------------- --------- ---------
             DB Time(s):               4.0              42.9      0.00     14.46
              DB CPU(s):               4.0              42.8      0.00     14.45
  Logical read (blocks):       2,873,420.5      30,846,373.9
Load Profile                    Per Second   Per Transaction  Per Exec  Per Call
~~~~~~~~~~~~~~~            ---------------   --------------- --------- ---------
             DB Time(s):               5.0              51.7      0.00     15.16
              DB CPU(s):               5.0              51.7      0.00     15.15
  Logical read (blocks):       3,520,059.0      36,487,232.0
Load Profile                    Per Second   Per Transaction  Per Exec  Per Call
~~~~~~~~~~~~~~~            ---------------   --------------- --------- ---------
             DB Time(s):               6.0              81.8      0.00     17.15
              DB CPU(s):               6.0              81.8      0.00     17.14
  Logical read (blocks):       4,155,985.6      56,787,765.6
Load Profile                    Per Second   Per Transaction  Per Exec  Per Call
~~~~~~~~~~~~~~~            ---------------   --------------- --------- ---------
             DB Time(s):               7.0              65.6      0.00     17.65
              DB CPU(s):               7.0              65.5      0.00     17.62
  Logical read (blocks):       4,638,929.5      43,572,740.0
Load Profile                    Per Second   Per Transaction  Per Exec  Per Call
~~~~~~~~~~~~~~~            ---------------   --------------- --------- ---------
             DB Time(s):               8.0              92.3      0.00     19.20
              DB CPU(s):               8.0              92.1      0.00     19.16
  Logical read (blocks):       5,153,440.6      59,631,848.6

This is really good. This is x2.8 more LIOPS than the maximum I had on AWS EC2. A x2 factor is expected because I have x2 vCPUS here. But CPU is also faster. So, two conclusions here:

  • There is no technical reason behind the reject of core factor on Amazon EC2. It is only a marketing decision.
  • For sure, for same Oracle Database cost, Oracle Cloud outperforms Amazon EC2 because is is cheaper (not to mention the discounts you will get if you go to Oracle Cloud)

So what?

This is not a benchmark. The LIOPS may depend a lot on your application behaviour, and CPU is not the only resource to take care. But for sure, the Oracle Public Cloud IaaS is fast and costs less when used for Oracle products, because of the rules on core factor. But those rules are for information only. Check your contract for legal stuff.


  • Fernando says:

    Hi Franck,

    Really good stuff. I’m planning to move to Oracle IaaS and testes like yours really help the “regular guys”.

    When you say we may run 1 proc. li. on 2OCPUs. Do you mean EE?

    I run SE1, and I’ve heard its possible to run this 01 proc. lic. on 4OCPUs. Is that difference because the distinct Oracle Editions?

    Best Regard!!!! Cheers,

  • Tayyab says:

    The information provided on the thread conflicts with below Oracle link

    Search for OCPU

    Can you clarify

  • Tayyab says:

    It says
    “An OCPU is defined as the CPU capacity equivalent of one physical core of an Intel Xeon processor with hyper threading enabled, . For Intel Xeon processor each OCPU corresponds to two hardware execution threads, known as vCPUs. ”

    So this would mean two OCPU would have 4 vCPUs. This conflicts with your example which is showing 8 vCPU for two OCPU.

    • Hi Tayyab,
      I do not see where I mention 2 OCU in this post. Please tell me if I missed it.
      I’ve tested 4 OCPU, which is 8 threads.
      I mentioned 2 processors licenses for that because one processor license covers 2 OCPUs here because Oracle applies the 0.5 core factor on their Cloud.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Franck Pachot
Franck Pachot

Principal Consultant / Database Evangelist
Oracle ACE Director
Oracle Database OCM 12c certified
AWS Database Specialty certified
Oak Table member

RSS for this blog: feed
Twitter: @FranckPachot
LinkedIn :
Podcast en français: DBPod