Jump to content
mauler57

VM CPU allocation help please

6 posts in this topic Last Reply

Recommended Posts

Hi Guys

 

I have been looking around the forums and even did some testing my self and i could not find the 100% i am looking for.  Is there a definitive answer which of the cpu pinning in the vm allocation is the actual core and which are the hyperthreaded cores? From my own benchmarks i seem to get better speed from the top row which are 0,1,2,3 then the bottom row. I am trying to get the gaming side sorted as i seem to be having some pretty serious cpu bottlenecking on my i7 3770. thank you in advanced.

 

Ps. my setup is purely to be used for 2x gaming machines in the same case not interested in allocating cpu power to other apps in unraid.

Share this post


Link to post

Hi Guys i guess the amount of views and no replies implies i am not the only one that is not sure what setting works best. I have played some more and found that setting the below gets the most constant fps in games. Also hyper v option seems to give a lot more fps as well

VM1 =  <vcpupin vcpu='0' cpuset='0'/>

            <vcpupin vcpu='1' cpuset='4'/>

            <vcpupin vcpu='2' cpuset='2'/>

            <vcpupin vcpu='3' cpuset='6'/>

 

VM2 =  <cputune>

            <vcpupin vcpu='0' cpuset='1'/>

            <vcpupin vcpu='1' cpuset='5'/>

            <vcpupin vcpu='2' cpuset='3'/>

            <vcpupin vcpu='3' cpuset='7'/>

 

Share this post


Link to post

Probably need to give a little more time for folks to respond, especially since you seem to be either a night owl or posting from another country.

 

We are relabeling that section of the UI in an upcoming release.  "Cores" is a misleading label there.  It's actually logical CPUs.  So a 4 core hyperthreaded processor will show up with 8 logical CPUs.

 

I've not worked with the exact CPU you have, but I can tell you that with mine, I've not really seen giant performance differences that were dependent on CPU/thread alignment in assignment.  That said, we have done some experimenting with CPU latency and what you'll find is that thread pairs belonging to the same physical core offer the lowest latency.  On my i7-4790k CPU, my thread pairs are 0/4, 1/5, 2/6, and 3/7.  If I assign 0/4/1/5 to VM1 and 2/6/3/7 to the other, it offers the lowest CPU latency.  However, on my setup, this hasn't really mattered at all because the latency impact seems to matter most when you're having other problems like audio glitching and whatnot, which on my CPU, I have yet to experience.

 

In the future, we want to build in mechanisms to auto-detect these latencies and provide recommendations in the UI as to how logical CPUs should be aligned for various purposes.

 

Another thing worth considering here is that you aren't leaving any logical CPUs open for the host itself, meaning that you will have context-switching occur from time to time as host operations interfere with guest operations.  I would probably reduce my CPU count per VM to 3 and then leave the remaining 2 for the host.

 

If you have more questions, I'm happy to answer them, but please be a little more patient in awaiting a response.

Share this post


Link to post

Alex Williamson came up with a script to check the latencies between different logical CPUs.

Share this post


Link to post

Probably need to give a little more time for folks to respond, especially since you seem to be either a night owl or posting from another country.

 

We are relabeling that section of the UI in an upcoming release.  "Cores" is a misleading label there.  It's actually logical CPUs.  So a 4 core hyperthreaded processor will show up with 8 logical CPUs.

 

I've not worked with the exact CPU you have, but I can tell you that with mine, I've not really seen giant performance differences that were dependent on CPU/thread alignment in assignment.  That said, we have done some experimenting with CPU latency and what you'll find is that thread pairs belonging to the same physical core offer the lowest latency.  On my i7-4790k CPU, my thread pairs are 0/4, 1/5, 2/6, and 3/7.  If I assign 0/4/1/5 to VM1 and 2/6/3/7 to the other, it offers the lowest CPU latency.  However, on my setup, this hasn't really mattered at all because the latency impact seems to matter most when you're having other problems like audio glitching and whatnot, which on my CPU, I have yet to experience.

 

In the future, we want to build in mechanisms to auto-detect these latencies and provide recommendations in the UI as to how logical CPUs should be aligned for various purposes.

 

Another thing worth considering here is that you aren't leaving any logical CPUs open for the host itself, meaning that you will have context-switching occur from time to time as host operations interfere with guest operations.  I would probably reduce my CPU count per VM to 3 and then leave the remaining 2 for the host.

 

If you have more questions, I'm happy to answer them, but please be a little more patient in awaiting a response.

 

Thank you Jon i appreciate your reply i didn't mean to come across as impatient i originally thought the answer maybe a simple known setting buy i think it varies as you have mentioned. I will look into the reducing of cores i did try putting only 3 cores on each but games like battlefield 4 ran really bad i will try again though. On your processor what cores would you assign to the vm1 and vm2?

 

I will also try the script to check cpu latency. I had noticed i got weird drops in performance which i was suspecting maybe not enough overhead for unraid to do it's thing

 

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.