?
Solved

CPU / sockets settings for two Hyper-V guests on a dual CPU/quad core host

Posted on 2014-02-27
10
Medium Priority
?
2,462 Views
Last Modified: 2016-11-23
hi all,

I've been  reading for some hours but i am totally confused with all the conflicting info.

I have a new Dell server with two quad core CPUs running Server 2012 R2 standard.  I have created two Hyper-V guests on this server, one is another Server 2012 R2 Standard instance (which will be a terminal server) and the other is SBS2011.  The host server does nothing except run these two hyper-v guests.

I'm trying to understand the best way to set up the CPU allocation to these guests and am confused about the "sockets" and NUMA stuff.  The host system effectively has 8 cores in total.  Should I set both guests to use 8 sockets?  Currently they are both set to use 4 sockets, but i am concerned I may not be using all the hosts resources.

Once that is worked out, should i play with any reserve values, or just let hyper-v manage it unless i encounter an issue?

thanks in advance!
nathan
0
Comment
Question by:natrat22
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 3
10 Comments
 
LVL 39

Accepted Solution

by:
Philip Elder earned 1600 total points
ID: 39893896
We would assign # Cores - 1 vCPUs to SBS 2011 Standard. 16GB vRAM to 24GB vRAM depending on user count.
We would assign 4 vCPUs to the R2 Standard for RDS. 2GB vRAM + 512MB/User for RDS.

RAID 6 across 10K SAS spindles with a minimum of 6 but preferably 8 would be a good place to start. Hardware RAID with battery backed or non-volatile cache.

You have one more license to use for virtualizing another guest based on the host (1+2).

Philip
0
 
LVL 1

Author Comment

by:natrat22
ID: 39894218
Hi Philip, thanks for your reply, I'm a big fan and read a lot of your stuff on third tier and elsewhere :)

Did you mean 3 cores - 1 vCPU in the first line?  I'm confused as to how to do that in Hyper-V.  The options on the main settings section is simply "Number of virtual processors".  No reference to cores.  the screenshots attached show the current settings.
Capture.JPG
Capture2.JPG
0
 
LVL 39

Expert Comment

by:Philip Elder
ID: 39894855
To the CPU a virtual CPU (vCPU) = 1 thread.

As a rule one thread runs through the pipeline via one physical core on the CPU (with some shenanigans presented by Hyper-Threading).

So, what we do is take the number of physical cores - 1 to set maximum number of vCPUs assigned to a VM. So, in your case we would assign a maximum of 3 vCPUs to a VM.

NUMA and memory assignment has to do with available RAM attached to a specific CPU. If that RAM is relatively full and a VM comes online that requires more RAM than available at that CPU its vRAM is shuffled over to RAM associated with another CPU. This shuffle costs CPU cycles.

In my experience when the processing logic has to shuffle vCPU threads between CPUs (they _have_ to be processed parallel in the pipeline) or RAM between CPUs performance gets compromised during those shuffle cycles.

Philip
0
Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

 
LVL 74

Assisted Solution

by:Jeffrey Kane - TechSoEasy
Jeffrey Kane - TechSoEasy earned 400 total points
ID: 39896523
One thing I notice from your screen shots is that you only have about 14GB of RAM allocated to your SBS.  You may find that is not enough (depends on how many users, and other factors) so I would keep an eye on the performance of the SBS and increase the RAM if you are having issues.

Be aware though, as Philip alluded to above, RAM is attached to a specific CPU.  I've found that it's best to keep amount of RAM balanced, so if you currently have 32GB of RAM in the server (16GB in each bank), add RAM to both sides if you add any at all.

These days, the cost of RAM is plenty low enough compared to the additional performance you get -- having plenty in place generally avoids needing to even worry about the allocation you are asking about.
0
 
LVL 1

Author Comment

by:natrat22
ID: 39896784
Its a small small business :)   Around 10 users - I've been running SBS2011 with 12GB RAM for businesses of that size on physical hardware without any issues for a while so I figured 14 would be plenty for the VM.  I also do some memory tweaks on all my SBS installs - setting a max RAM use for exchange store for example, which just runs rampant otherwise.

I did originally try to add 14GB to each VM but it said there wasnt enough RAM, even though there is 32GB in the system.  I've yet to investigate that, I'm sure theres some way to sort that out.
0
 
LVL 1

Author Comment

by:natrat22
ID: 39896787
Philip i hadn't seen anywhere in my searching a reference to using physical cores minus 1 for vCPU allocation.  Whats the logic behind this?  Is it effectively keeping a core free for the host?
0
 
LVL 74

Expert Comment

by:Jeffrey Kane - TechSoEasy
ID: 39897834
If you've been running fine with 12GB, then definitely you will be okay with 14GB for your VM.

The reason you may have had trouble assigning 14GB to each VM is related to what Philip said about NUMA above.  Your machine may have 32GB, but there are only 16GB per processor.  If you assign the VM to a specific processor then it will only have 16GB available and if your host is taking up a couple, then it won't have quite enough to give you 14GB.

This is why in a small environment, I generally just let Hyper-V handle things in the default manner.  Because with only 10 users, I doubt you will experience any performance issues which would require you to do any additional fine tuning.
0
 
LVL 1

Author Comment

by:natrat22
ID: 39898066
Thanks, but i did just let hyper-v do everything.  I set up the first VM with 14GB, and all other settings default.  then I tried to set up another VM with 14GB and it wouldnt let me do it, hence dropping it back to 12.  As I said I'm sure there is a way to fix that, i just haven't got around to researching it yet :)
0
 
LVL 74

Expert Comment

by:Jeffrey Kane - TechSoEasy
ID: 39898382
I just explained above why you couldn't do it... what more do you need to research?
0
 
LVL 39

Expert Comment

by:Philip Elder
ID: 39899096
Our practice of #Cores - 1 for total vCPUs comes from a few things.

One was a Hyper-V performance discussion via TechEd about 5 years ago that is no longer available. In that discussion we learned that the CPU pipeline must process VM threads (vCPUs) in parallel through the entire pipeline (CLOCK_WATCHDOG_TIMEOUT was the result of threads getting out of sync blog post).

Also in that discussion was how the pipeline juggles the various thread sets for each VM.

Essentially, the CPU pipeline scheduler has a little more room to work when there is at least one core available.

Philip
0

Featured Post

Is Your AD Toolbox Looking More Like a Toybox?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Veeam Backup & Replication has added a new integration – Veeam Backup for Microsoft Office 365.  In this blog, we will discuss how you can benefit from Office 365 email backup with the Veeam’s new product and try to shed some light on the needs and …
In this article, I am going to show you how to simulate a multi-site Lab environment on a single Hyper-V host. I use this method successfully in my own lab to simulate three fully routed global AD Sites on a Windows 10 Hyper-V host.
In this Micro Tutorial viewers will learn how to restore single file or folder from Bare Metal backup image of their system. Tutorial shows how to restore files and folders from system backup. Often it is not needed to restore entire system when onl…
This tutorial will walk an individual through the process of transferring the five major, necessary Active Directory Roles, commonly referred to as the FSMO roles from a Windows Server 2008 domain controller to a Windows Server 2012 domain controlle…
Suggested Courses

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question