I think I'm a bit lost here. The comments, and possibly the post, seem to be focusing on Constrained CPUs being the problem, and a sense that if you are on a constrained 8-vCPU out of possible 16 vCPU, you only need to be licensing 8 vCPUs that are available to your instance.
This part makes perfect sense to me, what is available to your instance.
What I am NOT quite certain of is the indication of how many Oracle licenses these SHOULD properly be licensed with. With some searching, I could not find anything that definitively said (other than this non-authoritative blogpost) [In Azure, each CORE is shown to the processors as TWO HyperThreaded Processors], and I'm not sure if that would hold true for all SKUs, or even all Oracle SKUs.
So, I don't know if the correct play here is to say
- "LSCPU listed it as 4 cores x 2 thread" = 4 cores = 4 Processor Licenses OR
- "LSCPU listed it as 4 cores x 2 thread" = 8 vCPU = (8/2 vCPUs per Processor License) = 4 Processor Licenses OR
- (I think this is where this article was aimed at educating mistaken people) "I selected an Azure SKU with 8vCPU cores (Perhaps, E16-8ds ), and that has 8 'Virtual' processors", and then thinking that Virtual Processor = Virtual Core, that should be *8* Processor Cores.
I see two key parts mentioned.
"Microsoft Azure – count two vCPUs as equivalent to one Oracle Processor license if multi-threading of processor cores is enabled, and one vCPU as equivalent to one Oracle Processor license if multi-threading of processor cores is not enabled."
and then down lower
E16ds v4 has 16-vCPU, (8 cores with hyperthreading to total 16) to be licensed by Oracle.
The E16-8ds v4 shows 8-vCPU, (4 cores with hyperthreading to total 😎
So, just to make sure I have understood.
In Azure: E16ds v4 has 16-vCPU
Since that ends up being 8 cores with HyperThreading (16 vCPU total), this would be properly licensed as 8 Oracle Processor Licenses?
Slightly differently put: In Azure, you have 16 vCPU, and the guidance said "...count TWO vCPUs as ONE Oracle Processor License [when multi-threading]", so - (16vCPU / 2 vCPU per ProcessorLicense) = 8 Oracle Processor licenses
And for the constrained example
E16-8ds v4 shows 8 (available!)-vCPU, but that is going to show as (4 Cores*2 Threads) = 8 vCPU = 4 Oracle Processor Licenses
And if someone WANTED to make a clearer case, and you had Azure Support manually turn off Multi-Threading, then
(in an admittedly LARGER example VM, that I'm not sure would be actually possible, but to keep from mixing up the examples)
E16ds v4 (With Multi-Threading DISABLED) shows 16 vCPU, as (16 Cores*1 Threads) = 16 vCPU = (16 / 1 Processor Licenses w/o MultiThreading per 1 Core) = 16 Oracle Processor Licenses