How reliable would a gaming vm be?


Blindsay

Recommended Posts

Hey all,

 

So right now I have 2 separate systems, a 9600K/2080S VR Gaming Machine (attached a picture of it for reference) and a 3900X unraid build. On their own they work great but there is definitely some wasted resources between the two. I thought it would be really cool to do a single crazy water cooled Threadripper 3960X build but i am worried about how reliable VR gaming will be in a VM.

I have read that buying a usb addon card and passing through the entire card helps and i dont mind some tinkering/process to get it setup initially but i dont want to mess with it every day. 

Curious to those who have done gaming VM's what their experience has been with reliability (after getting it setup)

 

Thanks!

 

Edit: Also, I did consider a 3950X but I suspect it will not have enough PCIE lanes/possibly not enough CPU power.

If i were to use my current motherboard from my 3900X this is what I would need for slots,

x16 - 2080 Super

x1 - Dual port NIC (Mobo only has a single 1Gb NIC)

x1 - GT 710 GPU since the cpu has no gpu built in

x4 - PCIE to x4 NVME adapter because my mobo only has 2 nvme slots and I run 2 drives in the cache pool and 1 external

x4 - a good 4 port usb card (still working on which one).

 

As mentioned above I also have 2x nvme drives that consume 4 lanes each.

 

I want to run my valve index on the gamine machine and also possibly get into some basic mixed reality vr capture, my plex setup which has about 75% of the 3900X allocated to it, and a small minecraft server

 

Thought about maybe the 10980XE as it has more lanes then the 3950X but is still $400 cheaper than the 3960X but I am not sure if that makes much sense

DSC_0190.JPG

Edited by Blindsay
Link to comment

So I have heard from a few folks that have done a similar build (at least a gaming vm build) and it has been reliable for them.

Right now I am debating the jump from something like a 3950X to the 3960X. If the 3960X is the only way to make it work ill save up a bit longer and go that route but if i dont have to spend the extra money id rather not ($750 vs $1400 for the cpu and $250 vs $450 for the mobo (also i am not sure my 750w psu would be enough at that point))

Right now my 3900X handles unraid and I have a small minecraft server on it (that i give 2c/4t) and then the rest is pretty much just for Plex. The 3950X is basically the 3900X + 4c/8t so i was thinking of giving that extra to my gaming VM (that should be more than my current 9600K correct?) 

I also just have to make sure i dont run out of PCIE lanes. Since i plan to get a mobo with at least dual NIC i could ditch my addin card for that. That leaves the 2080S, the GT710 (x1), a usb card (likely a 4 port x4 card) and then i would make sure i get a mobo with 3x nvme slots and at least 8x SATA slots

Trying to decide on a case, Looking at possibly the thermaltake tower 900

Link to comment
2 hours ago, Blindsay said:

Right now I am debating the jump from something like a 3950X to the 3960X. If the 3960X is the only way to make it work ill save up a bit longer and go that route but if i dont have to spend the extra money id rather not ($750 vs $1400 for the cpu and $250 vs $450 for the mobo (also i am not sure my 750w psu would be enough at that point))

Right now my 3900X handles unraid and I have a small minecraft server on it (that i give 2c/4t) and then the rest is pretty much just for Plex. The 3950X is basically the 3900X + 4c/8t so i was thinking of giving that extra to my gaming VM (that should be more than my current 9600K correct?) 

I'm currently running a similar setup to you (3900x) with minecraft server, Gaming VM (1070) and 2 smaller VMs (piHole, Storj) and I do kind of wish I had considered a Threadripper to get the extra PCIe lanes, but for CPU power the 3900x has been plenty. 

 

I'm not trying to talk you out of spending more money, but if you are looking at doing this mostly for extra power for plex, maybe consider getting a P2000/4000 to do the transcoding. The 3950x should have plenty of horsepower for your needs, even the 3900x might be enough, but throw in a good board and offload the transcoding to a gpu might be a better/cheaper option. This is the route I plan to take. 

 

I only have one video card in my system, and pass it through to my vm for gaming, so you could get away without needed that 710. Look at the x570 boards and see if any of them fit your needs. 

 

If you still want to go with Threadripper, go for it, but I'm not sure the extra cost is worth what you gain.

Edited by Chess
Spelling
  • Thanks 1
Link to comment
On 2/10/2020 at 11:23 AM, Blindsay said:

I have read that buying a usb addon card and passing through the entire card helps and i dont mind some tinkering/process to get it setup initially but i dont want to mess with it every day. 

Curious to those who have done gaming VM's what their experience has been with reliability (after getting it setup)

 

Sorry, should have added this to my first post, but...

 

Well, some experiences so far for vm gaming. It was pretty easy to get setup, as a lot of people here have done it. I pass through the only video card in the system into this VM to save on PCIe slots/PCIe lanes. I stream my games from the server to my laptop, so I'm just passing through the usb devices and not a usb controller to the VM. If I used this system as my only PC I would pass through a usb controller to the VM so I have hot swap USB, but it is not a problem at the moment.

 

Gaming on the system is pretty good, not as good as BM, but as I stream my combo (4c/8t 8GB & 1070) easily pushed 60 fps on high settings in the games I play. I suspect I could do ultra on most, but high lowers my GPU temps, and there is a lot of heat generating hardware in this system.

 

I'm going to give the VM 6c/12t in the future as this vm is replacing a 2600x Ryzen desktop with the same video card. I've consolidated 3 physical systems into this box.

 

So things I did have issues with:

 

Studders in games. This was frustrating, and was not related to the core count. Right now this is pretty much gone when I gaming, but at first it was so bad even using the desktop the mouse would stop and start up. Used some of the fixes on the forums here to get a stable setup. I do get some when the game loads new textures into vram, and I have plans to fix that in the future (dedicated SSD or NVMe).

 

Can't pass my sound card to my VM yet. This is not an unRAID issue, but my mainboard. I think I can fix it, but as I stream, this is not a big deal to me yet.

 

Let me know if you have any questions and keep us updated on what you go with.

 

Link to comment
2 minutes ago, Chess said:

 

Sorry, should have added this to my first post, but...

 

Well, some experiences so far for vm gaming. It was pretty easy to get setup, as a lot of people here have done it. I pass through the only video card in the system into this VM to save on PCIe slots/PCIe lanes. I stream my games from the server to my laptop, so I'm just passing through the usb devices and not a usb controller to the VM. If I used this system as my only PC I would pass through a usb controller to the VM so I have hot swap USB, but it is not a problem at the moment.

 

Gaming on the system is pretty good, not as good as BM, but as I stream my combo (4c/8t 8GB & 1070) easily pushed 60 fps on high settings in the games I play. I suspect I could do ultra on most, but high lowers my GPU temps, and there is a lot of heat generating hardware in this system.

 

I'm going to give the VM 6c/12t in the future as this vm is replacing a 2600x Ryzen desktop with the same video card. I've consolidated 3 physical systems into this box.

 

So things I did have issues with:

 

Studders in games. This was frustrating, and was not related to the core count. Right now this is pretty much gone when I gaming, but at first it was so bad even using the desktop the mouse would stop and start up. Used some of the fixes on the forums here to get a stable setup. I do get some when the game loads new textures into vram, and I have plans to fix that in the future (dedicated SSD or NVMe).

 

Can't pass my sound card to my VM yet. This is not an unRAID issue, but my mainboard. I think I can fix it, but as I stream, this is not a big deal to me yet.

 

Let me know if you have any questions and keep us updated on what you go with.

 

 

 

Thanks for the reply.

 

I had considered a gpu for the plex transcoding (I have used a P2000 in the past) but i like the simplicity of using a cpu. More so than that though, I am concerned about running out of PCIE lanes as it is, so adding another gpu would make that even more likely. 

On the sound side of things, I use most of the time an external usb DAC so i would just connect that to my addin usb card and pass that through. When not using my DAC I also have a corsair usb headset so i would plug that into the same usb card. 

I am still sorting out what to do storage wise. I only have room for 3 nvme drives (4 would be ideal) so i might try to pass 1 of the nvme drives directly to the VM so it gets to have that to itself and then keep the others in the cache pool

Link to comment
1 minute ago, Blindsay said:

Thanks for the reply.

 

I had considered a gpu for the plex transcoding (I have used a P2000 in the past) but i like the simplicity of using a cpu. More so than that though, I am concerned about running out of PCIE lanes as it is, so adding another gpu would make that even more likely. 

On the sound side of things, I use most of the time an external usb DAC so i would just connect that to my addin usb card and pass that through. When not using my DAC I also have a corsair usb headset so i would plug that into the same usb card. 

I am still sorting out what to do storage wise. I only have room for 3 nvme drives (4 would be ideal) so i might try to pass 1 of the nvme drives directly to the VM so it gets to have that to itself and then keep the others in the cache pool

 

Threadripper does offer a lot more PCIe lanes then x570, and x570 has more than my b450 board, so I understand why you want to go that route, alas the cost of the mainboards kind of scared me off. Maybe when I pay off the cost of my 3900x I'll look at a x570 board to give me a few more PCIe lanes as my PCIe sata controller that most of my drives run on is only limited and running a parity check is slow. 

 

I don't think unRAID supports booting a vm using a passed through nvme without some hacking, so that is why I have not yet done that. I think I will just for now use the nvme drive with a vm image file and see if that helps the limited studdering. The drive is sitting there on the desk ready to go in. I think if I was in your boat with the 3 drives, I'd use 2 for the cache and then one for the VM storage depending on the size of the drives. 

 

Link to comment
On 2/10/2020 at 7:23 PM, Blindsay said:

...

Curious to those who have done gaming VM's what their experience has been with reliability (after getting it setup)

...

If i were to use my current motherboard from my 3900X this is what I would need for slots,

x16 - 2080 Super

x1 - Dual port NIC (Mobo only has a single 1Gb NIC)

x1 - GT 710 GPU since the cpu has no gpu built in

x4 - PCIE to x4 NVME adapter because my mobo only has 2 nvme slots and I run 2 drives in the cache pool and 1 external

x4 - a good 4 port usb card (still working on which one).

...

As mentioned above I also have 2x nvme drives that consume 4 lanes each.

...

I want to run my valve index on the gamine machine and also possibly get into some basic mixed reality vr capture, my plex setup which has about 75% of the 3900X allocated to it, and a small minecraft server

...

Let's start with "reliability" and tinkering.

Usually once set up (and go through all the hoops to get things set up), you EITHER are happy with it and really don't have to do any more tinkering OR are constantly tinkering because there's something that keeps on bugging you. The most common complain with gaming on VM with Threadripper is high fps variance. You can get close to bare metal average fps but with the min can be quite a bit lower, depending on games and config.

Personally I have never found it to be a big deal but I have seen so many complaints about it.

 

If gaming is very important to you, I highly highly recommend you NOT consider doing any VM stuff. VM just cannot beat bare metal performance.

 

Now with regards to your intended PCIe use.

  • There's no need for a USB card. Ryzen / TR motherboard has at least one onboard USB controller that can be passed through to a VM.
  • Most TR motherboard comes with 3 M.2 slots. sTR4 can come with 4 M.2 slots. Failing that, you can even get something like the Asus Hyper M.2 to break out a x16 slot to 4 x4 M.2 slots for many more NVMe.
  • Your GT 710 will by itself occupy a x16 slot (even if it's running at x8 or even PCIe 2.0 x4 speed). That assumes you buy a Gigabyte motherboard, which allows you to pick which x16 physical slot as initial display i.e. what Unraid boots with.
    • Other motherboards are likely to require you to waste the 1st PCIe slot for the GT 710 should you want Unraid to boot with it.
  • Like 1
Link to comment
3 minutes ago, testdasi said:

Let's start with "reliability" and tinkering.

Usually once set up (and go through all the hoops to get things set up), you EITHER are happy with it and really don't have to do any more tinkering OR are constantly tinkering because there's something that keeps on bugging you. The most common complain with gaming on VM with Threadripper is high fps variance. You can get close to bare metal average fps but with the min can be quite a bit lower, depending on games and config.

Personally I have never found it to be a big deal but I have seen so many complaints about it.

 

If gaming is very important to you, I highly highly recommend you NOT consider doing any VM stuff. VM just cannot beat bare metal performance.

 

Now with regards to your intended PCIe use.

  • There's no need for a USB card. Ryzen / TR motherboard has at least one onboard USB controller that can be passed through to a VM.
  • Most TR motherboard comes with 3 M.2 slots. sTR4 can come with 4 M.2 slots. Failing that, you can even get something like the Asus Hyper M.2 to break out a x16 slot to 4 x4 M.2 slots for many more NVMe.
  • Your GT 710 will by itself occupy a x16 slot (even if it's running at x8 or even PCIe 2.0 x4 speed). That assumes you buy a Gigabyte motherboard, which allows you to pick which x16 physical slot as initial display i.e. what Unraid boots with.
    • Other motherboards are likely to require you to waste the 1st PCIe slot for the GT 710 should you want Unraid to boot with it.

 

The GT 710 I have is an x1 card, right now i have it in an x1 slot on my Asrock X570 board without issue (My current unraid box is just a 3900X and the only gpu in it is the GT 710).

 

Gaming is important to me, i understand that a VM loses performance over bare metal but I am hoping I can throw a bit more resources at it to make up for that loss. 

Thats good to know about the usb, i figured an addon card would just be easier but it is good to know it wouldnt be required.

Thanks!

Link to comment
39 minutes ago, Blindsay said:

The GT 710 I have is an x1 card, right now i have it in an x1 slot on my Asrock X570 board without issue (My current unraid box is just a 3900X and the only gpu in it is the GT 710).

Gaming is important to me, i understand that a VM loses performance over bare metal but I am hoping I can throw a bit more resources at it to make up for that loss. 

In your combined server, you will run 2 GPU. The default behavior of the BIOS would be to pick the 1st GPU to boot with, which would be the one on the 1st PCIe slot (which would not be your GT 710 in the x1 slot). Gigabyte would allow you to pick any x16 slots as initial display, saving you from wasting the 1st PCIe slot; however, it also doesn't allow you to pick the x1 slot as initial display.

The reason why the GT 710 is doing fine in your current server is probably because it's the only GPU.

 

Ironically with Threadripper, there can only be so much you can throw at it before latency comes into play and makes things worse. For gaming, Intel (single die type of CPU) is still the best.

 

 

 

Link to comment
2 hours ago, testdasi said:

In your combined server, you will run 2 GPU. The default behavior of the BIOS would be to pick the 1st GPU to boot with, which would be the one on the 1st PCIe slot (which would not be your GT 710 in the x1 slot). Gigabyte would allow you to pick any x16 slots as initial display, saving you from wasting the 1st PCIe slot; however, it also doesn't allow you to pick the x1 slot as initial display.

The reason why the GT 710 is doing fine in your current server is probably because it's the only GPU.

 

Ironically with Threadripper, there can only be so much you can throw at it before latency comes into play and makes things worse. For gaming, Intel (single die type of CPU) is still the best.

 

 

 

Thanks for the info.

 

Is that still the case with the 3000 series threadripper chips, AMD seems to have sorted out the gaming performance with them.

The Intel 10980xe though is on my list of chips to consider 

Link to comment

My 2 cents: as stated before if you need fps you need BM. It depends what games you play. And if you need high fps or not.
I do have tested BM VS vm on Un raid in Sim racing games and no VR (4k TV). It depends on the game but some do suffer and not provide smooth gameplay. You notice it more if you are playing online.
Once I switched back to BM everything is fine again. Of course if I would run a 2080ti instead of a vega64 I would get better fps.
Also WC is a must. I even recommend you place you rads out of the case!
Ii naked a huge difference. I placed them outside the window!

Enviado desde mi HMA-L29 mediante Tapatalk

  • Like 1
Link to comment

Just a follow up on my experiences.

 

I had a chance to really take a look at why I was getting studdering while gaming, and I tried a few things to solve it. In the end it was solved by going deeper in CPU pinning. I seems my dockers were overwhelming my unraid on core 0/12, and I suspect the emulator pin for my vm runs on that core. I had already isolated the cores that I had assigned to my VMs (with 6 cores, 12 threads dedicated to just this vm) and I noticed that my studdering went away when I disabled the docker service. So to solve it I forced my dockers to only use cores 1/13, 2/14, 3/15.  While this works, it kind of sucks as I have to go back anytime I add a new docker and force that. Would love to see @limetech consider adding in a way to set the cores/threads the docker service can use from the Dockers settings tab. I understand they have bigger fish so i understand that it is way down on the list, if at all.

 

I did have time to test this setup out vs my 2600x with the same graphics card a 1070, using The Witcher 3 and the performance is about a wash. And it is plenty for my uses at the moment.

Edited by Chess
Grammar
Link to comment

I use my UnRaid server for gaming daily. Windows 10 VM with a passed-through NVidia card and SSD. It's actually more reliable than a baremetal Windows installation. In the event of a failed Windows Update, corrupted registry, or any other variety of BS, all I need to do is kill the VM and replace 'vdisk1.img' with a backup image. I don't remember it ever being that easy before UnRaid. And beyond reliability, there are practically no performance penalties with the VM. Even AAA games run at full speed with zero issues.

Link to comment
2 hours ago, cyberspectre said:

I use my UnRaid server for gaming daily. Windows 10 VM with a passed-through NVidia card and SSD. It's actually more reliable than a baremetal Windows installation. In the event of a failed Windows Update, corrupted registry, or any other variety of BS, all I need to do is kill the VM and replace 'vdisk1.img' with a backup image. I don't remember it ever being that easy before UnRaid. And beyond reliability, there are practically no performance penalties with the VM. Even AAA games run at full speed with zero issues.

 

What are you using to backup the vm image file?  Or are you doing it manually?

Link to comment
2 hours ago, Chess said:

 

What are you using to backup the vm image file?  Or are you doing it manually?

Just doing it manually. It's just one cp command. If you're asking how I preserve backups outside my server, the whole array is backed up with spideroak. 

 

By the way, how do you get by with only 10 GB of memory allocated to your VM? Do you find some games require more? I give mine 16 GB.

Edited by cyberspectre
Followup question
Link to comment
49 minutes ago, cyberspectre said:

Just doing it manually. It's just one cp command. If you're asking how I preserve backups outside my server, the whole array is backed up with spideroak. 

 

By the way, how do you get by with only 10 GB of memory allocated to your VM? Do you find some games require more? I give mine 16 GB.

 

There is a plugin for VM backups. I'm not tried it yet.

 

I currently find 10 GB is fine but I plan to give it 12 or so once I have everything setup and see how much free RAM  I have. Just upgraded two of my 8 GB sticks to 16 GB sticks, so that should give me enough to bring up the ram in that VM, just not in a rush yet. I have a lot of dockers and VMs running and 32 was starting to push it a little. 

Link to comment

Adding my 2 cents, I spent a few weeks trying to get a VR gaming VM working on a Ryzen 2700 with a 1070ti passed through.  I got GPU passthrough working after downgrading the BIOS to an older AGESA version (Thus limiting my x370 board to 1x00/2x00 Ryzen CPU's).  2D benchmarks seemed reliable enough but I encountered wildly fluctuating FPS in VR.  VR is something that NEEDS a steady framerate to keep from making you sick.  I never found a solution for a VM solution so I built a dedicated ryzen 3600 VR system and put the 1070ti in it and never looked back.  You can always use a trial Unraid subscription and see how your system does but I would recommend bare metal for VR.  At the very least I learned a lot from my experience and now have a dedicated GFX card for my surveillance VM which is nice. 

 

 

Link to comment
  • 2 months later...

Running Win 10 VM with nvme, 32gb ram, threadripper 3960x (12 cores for gaming) in latency dependent online games and getting BM latency (24 ms to game server) with consistent 120 hz gsync. I was getting 200+ fps prior to turning on gsync (now 120 fps synced with ultra wide monitor at set refresh). Have my cpus pinned and even with 20 docker containers (on the other 12 cores and 32 gb ram) running radarr/sonarr/readarr/lidarr/emby & plex while running parity check I don't have any slowdowns. Took awhile to get there though.

Link to comment

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.