johnnyt29
asked on
vCPUs, sockets vs cores, which one to use, when?
Been trying to figure out how to select virtual CPUs for my VM's on an ESXi 5.0 host and am looking for practical advice for a lightweight "home lab" environment, with 3-4 always running VM's and another 2-4 VM's running during weekend "lab time". (Over time the numbers may well increase, of course.)
Am running all Windows OSes at this point, like Win 7 (32 and 64bit), WHS2011, Windows Server 2008, etc. but plan to start adding a few linux VMs in the near future.
I have an Intel i7 (quad core) processor. Depending on the OS, I can select 1 - 8 sockets and 1 - 8 cores in combinations not exceeding a total of 8.
I have 3 questions:
1. Will Windows 7 and WHS 2001 actually make use of multiple CPUs out of the box for standard "user" workloads, e.g. web browsing, editing, including photos, video streaming, etc, or do I need to do some config work to make it work? (just need to know if more work is needed, not the actual work at this point - I can look that up later)
2. If I just want to give a VM 2 vCPU's, should I pick 2 sockets and 1 core over 1 socket and 2 cores or vice versa?
3. With hyperthreading enable do I need to give an extra core for each socket, (or socket for each core??) or does it work regardless of cores/sockets assigned, i.e. will it work with 1 vCPU (1 core on 1 socket)?
Am running all Windows OSes at this point, like Win 7 (32 and 64bit), WHS2011, Windows Server 2008, etc. but plan to start adding a few linux VMs in the near future.
I have an Intel i7 (quad core) processor. Depending on the OS, I can select 1 - 8 sockets and 1 - 8 cores in combinations not exceeding a total of 8.
I have 3 questions:
1. Will Windows 7 and WHS 2001 actually make use of multiple CPUs out of the box for standard "user" workloads, e.g. web browsing, editing, including photos, video streaming, etc, or do I need to do some config work to make it work? (just need to know if more work is needed, not the actual work at this point - I can look that up later)
2. If I just want to give a VM 2 vCPU's, should I pick 2 sockets and 1 core over 1 socket and 2 cores or vice versa?
3. With hyperthreading enable do I need to give an extra core for each socket, (or socket for each core??) or does it work regardless of cores/sockets assigned, i.e. will it work with 1 vCPU (1 core on 1 socket)?
ASKER
1. do you mean add 1 socket, then a 2nd socket? what about cores? 1, 2?
2. assume I have no licensing constraints, what does adding cores do?
3. have read through the resource guide and don't understand from it what hyperthreading needs, if anything, another socket?, another core? maybe I just missed it.
2. assume I have no licensing constraints, what does adding cores do?
3. have read through the resource guide and don't understand from it what hyperthreading needs, if anything, another socket?, another core? maybe I just missed it.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
re: hyperthreading. there's an advanced CPU option under "resources" to select "Hyperthreaded Core Sharing" that says it is to "allow sharing of physical CPU cores when the host supports hyperthreading". This seems to suggest (to me anyway) that I need to allocate more than 1 core if I want hyperthreading to work so I'm still confused.
Also, will everything work as intended if I change sockets and/or cores after I've installed the OS, or do I need to do a new OS installation?
Also, will everything work as intended if I change sockets and/or cores after I've installed the OS, or do I need to do a new OS installation?
You allocate one CPU per virtual machine it's a processor. (The Hypervisor maps this processor in the VM to 1 Core on the host).
Leave that option set to ANY, and let the Hypervisor, pick the Core it wants to run the VM on. This allows you to pick a core on the host, and tie the VM to a particular core!
Yes, no changes required on OS.
Leave that option set to ANY, and let the Hypervisor, pick the Core it wants to run the VM on. This allows you to pick a core on the host, and tie the VM to a particular core!
Also, will everything work as intended if I change sockets and/or cores after I've installed the OS, or do I need to do a new OS installation?
Yes, no changes required on OS.
ASKER
found a good explanation here :
http://communities.vmware.com/message/2009341#2009341
http://communities.vmware.com/message/2009341#2009341
VM and Performance Tabs in vSphere Client.
2. Add Sockets. add Cores to comply with licensing.
3. 1 vCPU = 1 physical core on the host.
See Pages 17-27 in the vSphere 5.0 Resources Guide
http://pubs.vmware.com/vsphere-50/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-50-resource-management-guide.pdf