This was first published on https://blog.dbi-services.com/oracle-public-cloud-2-ocpu-for-1-proc-license (2017-02-08)
Republishing here for new followers. The content is related to the the versions available at the publication date
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.
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:
[oracle@a9f97f ~]$ 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 [oracle@a9f97f ~]$ 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:
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.
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,
Hi Fernando, Yes, this is for Enterprise Edition. For Standard Edition one proc (can we call it ‘virtual socket’?) covers 4 OCPUS Since last October (it was 2 before). Thanks for the feedback, Franck.