Processor, Core, Logical Processor, Virtual Processor


Hi all,

Processor, Core, Logical Processor, Virtual Processor, thread, Hyper Threading : many terms that create a lot of confusion in many times, specially with Virtualization.

Today i will explain these terms and i’m sure that after a deep reading of this blog, no one will ask the question about that, again.

My reference will be always Microsoft and Hyper-V, and i will respond the following questions:

1- What is the difference between Processor, Core, Logical Processor ?

2- What’s a Virtual Processor ?c

3- How can i calculate how many Virtual Processor my physical machine supports ?

4- My application runs today in a physical machine with 1 processor and 4 cores, how much virtual processor do i need if i decide to virtualize this machine ?

So it’s time to answer :

1- What is the difference between Processor, Core, Logical Processor ?

Processor : It’s the physical components that comes with server, responsible of all processing operations, a server can have more than one processor (1, 2…), we talk so about a multiprocessor server (bi-processor in case of 2).

Core : Inside your physical processor, you can have more than one operations unit, called Core. We can say that a core is like a processor, so 1 Processor with two Cores is like 2 processors with 1 Core (I insist is like not equal). Today all processors are multi-core, and for servers, we usually find 4 or more cores processors (aka Quad Core or more).

Logical Processor : As explained before, we have processors and cores. Normally a Core can handle one thread (aka operation) in the same time (processor time slot). But when the technology Hyper-Threading is activated and supported, the Core can handle two threads in the same time than one (it’s more complicated but i’m touching the point). The number of thread in a machine is the number of logical processor. So if you want to know how much logical processor do you have, just count the total number of threads.

So how to count that:

Cores Count = Processor Count * CoresCountPerProcessor

Logical Processor Count = CoresCount * ThreadCount

Examples :

  • I have a bi-Quad Core processors server with Hyper-Threading : LogicalProcessorCount = 2 * 4 * 2 = 16
  • I have a server with a 12 Cores processor : LogicalProcessor Count = 1 * 12 = 12

So how where to see how much processors, cores and Logical processors my server have:

  • In Windows start menu, go to System Information,make a look the first tab

SNAG-0000

SNAG-0001

  • In the task manager, make a look to Performances and count the logical processor views.

SNAG-0002 SNAG-0003

2- What’s a Virtual Processor

In virtualization, when you create a virtual machine you do assign to it a processor : Yes, we need that for the virtual machine to run and to make operations. But the question is what do we really assign to it ?

Like vRAM, VHD, Virtual network interface, we can assign to a virtual machine a Virtual Processor (VP). In an easy way, it’s a physical processor TimeSlot that will be given to the virtual machine. So when i assign a Virtual Processor to a virtual Machine, is like i rent a computing time from the processor, a piece of the processor

how much VP can i assign to a virtual machine: Good question and we need to know that : The number of virtual processor we can assign to a virtual machine depends on two factors:

  • Logical processor count in the physical machine : The number of VP cannot exceed the number of present logical processor. So if we have 16 logical processors in our physical machine, we can assign at max 16 VP. The rule is : 1 virtual processor from each one logical processor for a single virtual machine
  • The hypervisor support : In windows server 2008 R2 (and sp1) , Hyper-V supports at max 4 virtual processor per virtual machine, so even we have more than 4 logical processor, we can assign at max 4 VP for a virtual machine. In windows Server 2012 Hyper-V, we can assign up to 64 virtual processor per virtual machine, EXELLENT!!!!

Another factor is to not exceed the host operating system limit, you can check the following table:

System Resource Windows Server 2008 R2 Hyper-V Windows Server 2012 RC Hyper-V Improvement Factor
Host Logical Processors 64 320
Physical Memory 1TB 4TB
Virtual CPUs per Host 512 2,048
VM Virtual CPUs per VM 4 64 16×
Memory per VM 64GB 1TB 16×
Active VMs per Host 384 1,024 2.7×
Guest NUMA No Yes
Cluster Maximum Nodes 16 64
Maximum VMs 1,000 4,000

3- How can i calculate how many Virtual Processor my physical machine support ?

  • In Windows Server 2008 R2 (and SP1) : the ratio is : 1 Logical Processor : 8 Virtual Processor for any virtual guest. In a VDI scenario with Windows 7 guest virtual machines the ratio is 1 Logical Processor : 12 Virtual Processors. So if i have 12 logical processor, i can have up to 12 * 8  = 96 virtual processors, so 96 virtual machines with 1 vp, or 48 virtual machines with 2 vp or any combination without exceeding the total count of virtual processors
  • In Windows Server 2012 : Microsoft says that you can have as many virtual processor as your hardware supports. So create your virtual machines and monitor the performance of your server.

4- My application runs today in a physical machine with 1 processor and 4 cores, how much virtual processor do i need if i decide to virtualize this machine ?

There’s no exact formula to convert from physical needs to virtual needs when talking about processors.

But the today used formula is : Physical Core = Virtual Processor

So if your application need 1 quad core processor in a physical need, you can say that it’s need 4 virtual processors as a virtual machine.

We highly recommend that you monitor the virtual machine performance and seeing if there’s a need to add more virtual processors.

Source:

https://buildwindows.wordpress.com/2012/12/13/virtualization-processor-core-logical-processor-virtual-processor-what-does-this-mean/

Leave a comment

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