-1

Yesterday I contacted my vendor to buy a server, and I asked them how I should calculate the CPU and RAM requirements for my server, given that I want to create multiple virtual servers on it

He said 12 core (6 core x 2 sockets) = 24 Logical Processor (with hyper threading technology), and if you are planning to use VMware Virtualization technology, it doubles the Logical Processor which means 48 vCPUs

He said you can create 6 virtual servers with 8 vCPUs each, which is more than enough.

Is this statement correct? Can I count on this and buy it?

Does 12 core equals to 48 vCPU? And can i create 6 virtual servers dividing by 8 vCPU for each?

Mark Henderson
  • 68,823
  • 31
  • 180
  • 259
washaq
  • 21
  • 1
  • 1
  • 4

1 Answers1

4

Your vendor is selling you a simple story to explain something that can be complicated, but theirs is a bit off.

For starters: Hyper Threading does not give you extra cores, it just abstracts task switching away from the operating system and does it on-chip. This gives the appearance of multiple threads to the operating system, so that it can allocate tasks based on thread requirements, but this does not double the capabilities of that core. It just speeds up certain tasks.

VMWare ESXi is hyperthreading aware, so it knows which "cores" are hyperthreading cores and which are "real". So forget about hyperthreading, let ESXi take care of that.

Which means that you have 12 cores to work with. I have no idea where your vendor got the idea that 12 cores gives you 48 vCPUs, except that maybe they assume a 1:4 ratio on vCPU to physical CPU (this is probably some rule of thumb that they pulled from somewhere Kanye West likes to have thumbs put1, but is by no means universal).

Is that enough for what you want to do? Nobody can answer that except for you. You will want to read up on how ESXi allocates vCPUs. Once upon a time (many many years ago) ESX used "strict co-scheduling", which meant to allocate any vCPU cycles, all the vCPUs for that VM had to be avaliable. These days they use "relaxed co-scheduling", ESXi can schedule vCPUs separately.

If you have tiny VMs that barely use any CPU time and barely do any work, then you could get 40 or 50 or even more of them on a 12-core server. But if you have large database servers, or busy terminal servers, or any other sort of CPU-bound process then you are going to get far, far fewer of them on 12 cores.

If you have the need for 6 virtual machines, and each virtual machine needs 8 cores, then I suspect you are going to have contention issues on this host if all of those hosts are busy at the same time.

The only way this question can be answered is by you: You need to know your workload, know your application profiles (do they run at 100% CPU all the time, do they burst when reports are generated, do they run maintenance out of hours, etc), know your hardware, know how the hypervisor allocates its vCPUs, and then you can make an informed decision about the kind of hardware configuration you need.

1His arse

Mark Henderson
  • 68,823
  • 31
  • 180
  • 259
  • Thank you very much, you are very helpfull, as much as i understood that it is upto work load on servers if they are cpu consumers there will be collision, but vendor also said microsoft exchange is cpu consumer and mostly our consumer allocate only 8 vcpu for it, which is enough, i dont have much idea about hyper threading, VMs and taking care of servers, im just a guy who interest IT stuff beside my normal job ;) guess what ? We dont have IT stuff here, i guess i have to contact with VMware office in my city, and i will trt to create profile of workload softwares and users. Thanks a lot. – washaq Jun 01 '16 at 13:16