I got stuck a little bit while verifying a ESX 3.5 server layout (it's about a MS SQL server with 4 CPU's and heavy load):
If I want to grant 4 vCPU's to a guest, what does count as a full CPU for vSMP and its scheduling? I want to avoid that the numer of vCPU's equals the number of CPU's available for scheduling. Do I have to count the number of physical processors or the number of cores (using hyperthreading)?
Example:
If I have 4 x Quad-Core CPU's and I grant at least one guest 4 vCPU's does this lead to scheduling problems due to an equal number of vCPU's granted and pCPU's? Or does this problem not occur, because the other guest's can be scheduled to the other "free" cores?
From what I'am aware, yet, the number of pCPU's count which leads to a rule of thumb to have more pCPU's than vCPU's granted. Has this changed with 3.5?
cores or threads count as a CPU for a vCPU - you will want at least twice the number of vCPUs you are using in a vSMP so if you are going to have a quad vCPU VM you should have at least 8 cores- so fi you are going to run your sql server with 4 vcpus you should have at least 8 cores - with 4 quad cores you should be ok - now as your esx host gets loaded you cabn still run into a scheduling issue because all 4 vcpus need to be scheduled simultaneously so if the vmkerenel does not have 4 cores available then it will not schedule the vcpus
cores or threads count as a CPU for a vCPU - you will want at least twice the number of vCPUs you are using in a vSMP so if you are going to have a quad vCPU VM you should have at least 8 cores- so fi you are going to run your sql server with 4 vcpus you should have at least 8 cores - with 4 quad cores you should be ok - now as your esx host gets loaded you cabn still run into a scheduling issue because all 4 vcpus need to be scheduled simultaneously so if the vmkerenel does not have 4 cores available then it will not schedule the vcpus
I agree totally with weinstein5.
(1 vCPU = 1 lCPU) where (1 lCPU = 1 core or 1 hyperthread)
You will want to minimize the number of vSMP VMs on a host so that you minimize scheduling conflicts. You should also start out with the minimum number of vCPUs assigned to a VM and then allocate additional vCPUs as the workload warrants. You will find that every application owner (especially SQL DBAs) will demand that their server have the maximum amount of resources allocate, when in actuallity, it is not uncommon to find that they can get by - very comfortably - with significantly less...
Ken Cline
Technical Director, Virtualization
VMware Communities User Moderator
So if I understand you right, I "only" have to make sure that I have two times the numer of cores (not pCPU's) of the maximum number of vCPU's granted?
In other words, if I have 2 x Quadcore pCPU's I fullfilled the minimum requirement when I grant 4 vCPU's?
yes that would be the minimum needed - but I agree Ken minimize the numebr vSMP VMs to reduce the risk of scheduling conflicts - I tell my clients start with 1 vCPU and add as you need them unless you have emperical data say form CapPlanner that a VM will need more than one CPU
I may have to virtualize a bunch of servers (one of them is a 8 CPU Oracle with unknown load and no information about the Oracle instances, yet and one is a MS SQL server with 4 CPU's and heavy to medium load + some small servers with a light load surrounding them, no questions about them).
For the big ones I thougt to start with the MS SQL and 2 vCPU's (8 GB RAM) , see how it's going and if necessary add the additional two vCPU's.
That sounds like a good start -
I may have to virtualize a bunch of servers (one of them is a 8 CPU Oracle with unknown load and no information about the Oracle instances, yet and one is a MS SQL server with 4 CPU's and heavy to medium load + some small servers with a light load surrounding them, no questions about them).
Beware Oracle Licensing on ESX Hosts
For the big ones I thougt to start with the MS SQL and 2 vCPU's (8 GB RAM) , see how it's going and if necessary add the additional two vCPU's.
With 8GB RAM, I'm assuming you're either doing 64 bit or Enterprise (do 64 bit if you can...)
Don't plan on putting many of these beasts on a single host
Ken Cline
Technical Director, Virtualization
VMware Communities User Moderator
Any large system like this whose behavior you cannot characterize in any way is a BAD BAD BAD virtualization candidate.
--Matt
We are at the beginning of the evaluation. It's just an initial requirement from the business, subject to be discussed. If it is decided to virtualize this host, and it won't work we have a tool at hand where we can V2P it very easy. So we're not running into a one-way lane.