You might have come across various terms related to virtualization such as Sockets, CPU, Core and vCPU—especially when you are reading a server licensing guide or thinking about cloud deployment. You never want to be in a situation where you're unsure about what things mean, so, if you're still a little confused, then this article is going to help you with that.
Socket – It is a physical connector on the motherboard that accepts a single physical chip.
CPU (Processor) – It is a component which is responsible to and processes the basic instructions that drive a computer.
The CPU was first developed at Intel with the help of Ted Hoff and others in the early 1970's. Earlier their use to be 1-1-1 mapping between Motherboard, Socket, CPU.
However, with time, technology got advanced and multi-processor chips were introduced. So now one chip can have one or more than one CPU’s.
Later came the concept of Core, which means one CPU can have one or many Cores.
Core (Physical Core) – It the processing unit that receives instructions and performs calculations, or actions, based on those instructions. A set of instructions can allow a software program to perform a specific function.
And then came the concept of multithreading which leads to a core that can run multiple instructions simultaneously and independently. Essentially, the core can run multiple instructions at once, which introduced the term virtual CPU (vCPU).
In the above figure, we have 1 motherboard which has 2 sockets. Each socket has 4 CPU’s, each CPU has 4 cores, and each core has 2 vCPU’s. So, in short, we have 1 motherboard, 2 Sockets, 8 CPU’s, 32 Cores and 64 vCPU’s.
So, next time you need to decide to choose a VM on a cloud having X amount of vCPU’s or you are licensing a server software of Y no of cores, I hope this guide will help you clear your concept about the same.