Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have an Intel Core i7 3930K with 6 CPU cores. Now, I understand that every of that cores can handle 2 separate threads. That makes 12 virtual cores - which I can see using my system monitor (see screenshot below).

But when I create a virtual machine using the VirtualBox software from Oracle, I suddenly can allocate 24 CPUs to that machine. How so?

12 or 24 cores

So, what does that mean? Are there actually 24 cores - or is VirtualBox wrong?

And what happens if I allocate for example 4 cores - how many are really added to the virtual machine?

share|improve this question

3 Answers 3

up vote 6 down vote accepted

One core, with or without hyper-threading, can simulate any number of virtual cores, simply by timeslicing. However, this produces all kinds of problems because the operating systems expect that code running at the same time will actually interleave. Overprovisioning can lead to performance drops so great the system can appear frozen with operations literally taking thousands of times longer than they should.

share|improve this answer
1  
Thanks alot, +1 you already answered my follow-up question, why my Windows 8 now always freezes! :) –  vertoe Jan 23 '13 at 14:54
    
The "extra" cores will be simulated (well, all of them are simulated, if you look at it that way). It works just fine. The cumulative performance will of course not be greater than that of the actual hardware. Lockups and problems are most likely bugs in the VM software that are probably fixed in newer version. I just started a 6 core VM on a 4 core HW and it works just fine, loading all 6 virtual cores (using VirtualBox 4.3.14 with Windows). VmWare also supports this. –  David Balažic Nov 15 at 19:08

The processor i7 3930K has VT-x.

Intel® Virtualization Technology (VT-x) allows one hardware platform to function as multiple “virtual” platforms. It offers improved manageability by limiting downtime and maintaining productivity by isolating computing activities into separate partitions.

That means you're able to simulate several more CPUs than the threads it can handle, thus seeing a higher number of CPUs available when using a Virtual Machine.

share|improve this answer

If you allocate 4 cores you get 4 cores in the VM. However almost all the time you're better off just allocating 1 because you add a lot of overhead every time you add another core.

You can have a maximum of 5 cores in your case, if you go over that into the red area your virtual machine will become unstable.

Virtual box reccomends the maximum number of cores you use should be n-1 of your physical cores. Hyper-Threading does not count.

This thread on the virtual box forums supports this.

share|improve this answer
    
But why does VirtualBox tell me that even 12 cores are "ok" ? (see screenshot.) I just tried 8 and it keeps freezing... –  vertoe Jan 23 '13 at 15:43
    
It doesn't do this on new versions of VirtualBox by the way. –  Tek Aug 7 at 13:22

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.