13

Is it possible to disable CPU (Intel) cores in BIOS, and if yes what HP/DELL (others?) 1U/2U servers would allow this?

It is becoming difficult to find new server hardware with dual core CPUs, most of new servers are Quad Core ones, and so the cost of Oracle licenses makes server upgrades unreasonably complicated. Which brings me to the question above.

ewwhite
  • 194,921
  • 91
  • 434
  • 799
monomyth
  • 971
  • 1
  • 5
  • 9
  • not really an answer (don't have chance to test it), but I found this: http://en.kioskea.net/faq/sujet-616-multicore-cpu-how-to-disable-a-core#procedure-when-using-windows - would it work? – nhek Dec 08 '09 at 17:49
  • Thanks. Yes I know about maxcpus. However there is a fear that oracle might see all the cores through some hardware probes, and legality of this method (in regards to the licensing agreement) is unclear. Disabling cores in BIOS should be a cleaner approach. – monomyth Dec 08 '09 at 18:02
  • 6
    Are you sure that disabling a core in BIOS would affect Oracle licensing? Oracle generally doesn't allow you to license a subset of the cores in the system if you are merely using software partitioning to restrict which cores Oracle can access-- they require an approved hardware partitioning solution. I doubt that BIOS settings would qualify. Various licensing restrictions also talk about the number of cores that could be installed in the box if you're using various Standard Edition/ Standard Edition One products. – Justin Cave Dec 08 '09 at 20:57
  • Justin, good point. I have no idea if this is permitted, but logically I see no reason why it shouldn't be, because it precisely addresses the software partitioning problem. Disabled cores are not available to the operating system and/or software at any level. – monomyth Dec 08 '09 at 22:07
  • 5
    I agree that it seems logical, but I have learned that legal issues don't necessarily flow logically from a technology standpoint. I'd make sure that either your legal department or your Oracle Sales rep buys off on disabling cores in the BIOS before making any decisions. – Justin Cave Dec 08 '09 at 22:14
  • Look at this http://www.oracle.com/us/corporate/pricing/partitioning-070609.pdf –  Mar 29 '12 at 10:28
  • possible duplicate of [Can you help me with my software licensing issue?](http://serverfault.com/questions/215405/can-you-help-me-with-my-software-licensing-issue) – Michael Hampton Oct 13 '12 at 23:35
  • 1
    I am an Oracle software rep and have seen this issue several times. Turning off sockets from the BIOS is considered soft partitioning and LMS will seek a license for what you have disabled. I know, not a popular answer but it's the one you will get if this is discovered. –  Apr 30 '15 at 20:35
  • Intel creates a line of processors with the same number of cores, then they disable cores for those that are a lesser model. So technically, the cores are present but are disabled. Therefore, if Intel can disable them, then why shouldn't I be able to disable them? Unless the legal text says that the cores must be "permanently disabled by the manufacturer", I don't think Oracle will have much of a leg to stand on if it goes to court and gets deep in the details. – Brain2000 Apr 05 '19 at 20:47

2 Answers2

16

With the HP ProLiant G5 and newer (G6, G7, Gen8) servers (e.g. DL380, ML370, etc. - Anything after the Intel 5400-series CPU's), it is possible to disable half of the cores available to the server.

This is a BIOS switch labeled "Processor Core Disable" with options "All Processors Enabled" and "Disable One-Half of cores per Physical Processor."

This is a standard and recognized means of reducing core count for tricky licensing scenarios.

ewwhite
  • 194,921
  • 91
  • 434
  • 799
  • 2
    IBM UEFI-based Intel 5500 and above servers also allow you to run only one/two/four/etc. cores per CPU. – MikeyB Dec 10 '11 at 14:00
8

You could consider running VMWare ESXi on the hardware, and only present 4 processing cores to the guest. The "overhead" should be negotiable as there would be four free cores.

SirStan
  • 2,373
  • 15
  • 19
  • 2
    I could, but I won't. With a bios setting you can easily revert it whenever licensing will change, giving oracle all 100% of hardware power. ESXi will still be using memory and cpu. Virtualization is not a magic pill, no matter how much we want it to be. It has its uses, but this is not one of them. – monomyth Dec 08 '09 at 18:16
  • 8
    I would recommend you carefully review the merits of VMWare for exactly this scenario and not simply brush it aside as ineffective or inefficient. – SirStan Dec 08 '09 at 18:25
  • 6
    Agree with SirStan. This is the exact sort of place where virtualization shines: you need a specific hardware platform that is becoming hard to obtain. A VM will give you that flexibility, and if your license changes, then you can just add more cores to the VM, or even move the virtualized machine to new hardware and add more resources there. – Satanicpuppy Dec 08 '09 at 18:56
  • 1
    what you are proposing is to run a single virtual server for the sake of virtualization. and this is completely senseless (besides not answering an exact question that I asked). It would make sense to add an oracle instance to an existing hypervisor, or build a hypervisor to run multiple oracle instances, or mix of server, etc. But running a single VM instance on a single physical server to limit cores to that server, potentially hoping to max them out is just a waste of resources, time and brain power. – monomyth Dec 08 '09 at 19:20
  • 3
    No. by running the Oracle machine in a VM, you gain very granular control of CPU resources independent of the options offered by a particular machines BIOS. Three people can't see a better option. They're not all completely senseless. It also gives you hardware independence which is an advantage not to be ignored. I run compute servers in VMs. It costs me ~5% performance, which is a price I'll pay for convenience and in my case trivial SAN boot. I'm not aware of a BIOS that lets you do anything other than disable all cores but one in a socket. That I suspect isn't good enough. – xenny Dec 08 '09 at 20:59
  • 2
    xenny you should really read through this wikipedia article http://en.wikipedia.org/wiki/Argumentum_ad_populum :) As of hardware independence, it's true but was never requested as part of the question, requires SAN, multiple server hardware, and proper VMWare licensing, non of which was mentioned by magical "virtualize it" suggestion. – monomyth Dec 08 '09 at 22:02
  • 1
    Monomyth: None of those things are required. SAN? No, use local disks. Multiple servers? No, just use the server you were going to use. Licensing? I guess true, but ESXi is free. Using virtualization will give you a way to say "this OS can only see X CPUs" with certainty. Later, if you buy a bigger Oracle license, you can turn up the number of CPUs with a reboot. What's the problem here? Yes, there's overhead. The CPUs you're disabling can be used to run VMWare :) – Bill Weiss Dec 09 '09 at 16:59
  • But there's still a performance hit, and I don't think this was the answer to the original question. An earlier poster cited a 5% CPU performance hit. Sometimes it seems like more. Luckily the HP Proliant BIOS allows Hyperthreading (5500-series) and the half of the cores to be disabled (5400 and 5500-series for sure). – ewwhite Dec 09 '09 at 19:56
  • 5
    I know this is an old thread, but in case anyone else finds it, Oracle does not recognize the validity of only assinging the Virtual Machine running Oracle x number of CPUs out of a total of y cpu cores in the server. They require a license for all the cores on the server if it is running VMWare. If you are running it this way make sure you get in writing, from Oracle, that this is a supported configuration and you only need a licence for x number of cores, not a license for all the cores on the server. –  Nov 05 '12 at 19:29