Gaming on a NAS? You better believe it!


Recommended Posts

I've just installed 2 VMs on a system VERY similar to what you tested. An i7-4790 (non-K, I didn't know this series of K processor could use VT-d. Live and learn), 16gb of RAM, a Gigabyte Z87 motherboard and a GTX 780.

 

I'm getting horrendous performance in World of Tanks (the only game I've tested so far), while my GF is getting pretty decent performance on her GTX 960 playing Alice Madness Returns.

 

When I was running bare metal, my FPS in World of Tanks would hover around 70 fps for most maps, with everything maxed out. Running my VM, I get 24-30 FPS if I'm lucky. CPU utilization is at around 40% for my 4 cores (2 physical, 2 virtual), going to about 50%. So I think it's something with my GFX, which is in the 16x PCI-E slot on the motherboard.

 

Can you help me identify what might be causing problems? All drivers are up-to-date.

 

So do you have hyper threading turned on or off?  How many and which specific CPUs do you have assigned to each VM?

 

Hyperthreading is on. Both VMs have 4 cores assigned, core 0-3 for the first and 4-7 for the second, along with 7GB of RAM.

Hmm, if you turn her VM off and play, how is it?

It improved. Not quite to a point where I maintained the performance that was reported in your own 3Dmark tests, but where the game went from barely playable to tolerable. Somewhere around 45-50 fps with medium to high settings.

 

I'll try running other games today to see how performance is for something else. It could just be that World of Tanks is ridiculously CPU bound, or running with only two hyperthreaded cores is simply not enough unless I close down everything else while gaming.

 

Out of curiosity, could you assign all eight cores to both machines, to maintain performance when only one VM is running, and have the OS split the performance when both are running?

 

Best Regards :)

Link to comment

I've just installed 2 VMs on a system VERY similar to what you tested. An i7-4790 (non-K, I didn't know this series of K processor could use VT-d. Live and learn), 16gb of RAM, a Gigabyte Z87 motherboard and a GTX 780.

 

I'm getting horrendous performance in World of Tanks (the only game I've tested so far), while my GF is getting pretty decent performance on her GTX 960 playing Alice Madness Returns.

 

When I was running bare metal, my FPS in World of Tanks would hover around 70 fps for most maps, with everything maxed out. Running my VM, I get 24-30 FPS if I'm lucky. CPU utilization is at around 40% for my 4 cores (2 physical, 2 virtual), going to about 50%. So I think it's something with my GFX, which is in the 16x PCI-E slot on the motherboard.

 

Can you help me identify what might be causing problems? All drivers are up-to-date.

 

So do you have hyper threading turned on or off?  How many and which specific CPUs do you have assigned to each VM?

 

Hyperthreading is on. Both VMs have 4 cores assigned, core 0-3 for the first and 4-7 for the second, along with 7GB of RAM.

Hmm, if you turn her VM off and play, how is it?

It improved. Not quite to a point where I maintained the performance that was reported in your own 3Dmark tests, but where the game went from barely playable to tolerable. Somewhere around 45-50 fps with medium to high settings.

 

I'll try running other games today to see how performance is for something else. It could just be that World of Tanks is ridiculously CPU bound, or running with only two hyperthreaded cores is simply not enough unless I close down everything else while gaming.

 

Out of curiosity, could you assign all eight cores to both machines, to maintain performance when only one VM is running, and have the OS split the performance when both are running?

 

Best Regards :)

Ok, it could be that it's very time sensitive.  There are some games that we've seen this with and when you have an NVIDIA GPU, we have to disable an enlightenment to the guest that helps with this.  Fortunately this is not an issue in unRAID 6.2 as it will include a workaround for that.

 

I tested this game earlier today on my rig and it played great.

Link to comment

 

Ok, it could be that it's very time sensitive.  There are some games that we've seen this with and when you have an NVIDIA GPU, we have to disable an enlightenment to the guest that helps with this.  Fortunately this is not an issue in unRAID 6.2 as it will include a workaround for that.

 

I tested this game earlier today on my rig and it played great.

 

My GF and I were hoping to "spare" a PC because she only games once in a while but likes having a decent PC for doing work and playing when it hits her. So having one PC pulling double duty seemed ideal. Hoping it doesn't actually require a 6-core HT CPU to make it work, as I really would like to not compromise on my own gaming experience when she fires up her VM (apart from the slowdowns that are associated with sharing 8 virtual cores).

 

It could simply be that 4 hyperthreaded cores running at 3.8Ghz (according to Dashboard) simply isn't enough to share between two gaming VMs on a Z87 chipset.

 

How do you update your unRAID version when the time comes? I'm quite new to your software, so I've literally just downloaded and set it up once.

 

I'll report back with a different game later today.

 

Thank you for your responses :)

Link to comment

 

Ok, it could be that it's very time sensitive.  There are some games that we've seen this with and when you have an NVIDIA GPU, we have to disable an enlightenment to the guest that helps with this.  Fortunately this is not an issue in unRAID 6.2 as it will include a workaround for that.

 

I tested this game earlier today on my rig and it played great.

 

My GF and I were hoping to "spare" a PC because she only games once in a while but likes having a decent PC for doing work and playing when it hits her. So having one PC pulling double duty seemed ideal. Hoping it doesn't actually require a 6-core HT CPU to make it work, as I really would like to not compromise on my own gaming experience when she fires up her VM (apart from the slowdowns that are associated with sharing 8 virtual cores).

 

It could simply be that 4 hyperthreaded cores running at 3.8Ghz (according to Dashboard) simply isn't enough to share between two gaming VMs on a Z87 chipset.

 

How do you update your unRAID version when the time comes? I'm quite new to your software, so I've literally just downloaded and set it up once.

 

I'll report back with a different game later today.

 

Thank you for your responses :)

You should be able to get a decent experience with two players on that system. Updating unRAID is done through the webgui itself under the plugins tab. You'll hit "check for updates" and if unRAID OS shows one, you'll update it and then restart your system.

Link to comment

I'm going to try a bit of a challenge later, throwing The Witcher 3 at it. If that runs decently, I'll just assume World of Tanks is horrible, and I'll have to live with lower settings in game :)

 

Thank you very much for all your help so far.

Please do and report back your findings.

Link to comment

I'm going to try a bit of a challenge later, throwing The Witcher 3 at it. If that runs decently, I'll just assume World of Tanks is horrible, and I'll have to live with lower settings in game :)

 

Thank you very much for all your help so far.

Please do and report back your findings.

 

I started out with something different. Ran a 3DMark on both VMs at the same time.

This is the result from mine:

http://www.3dmark.com/3dm/10300777?

 

My GF, who's running with only three threads (tried having CPU 0 unassigned as per the idea further up) got a score of about 5800 points on a GTX 960, getting about 5970 if mine wasn't running. Pretty decent results I think, and much more in line with what your tests showed than what I could conclude from World of Tanks.

 

Will still try Witcher 3 later, and report back :)

Link to comment

I'm going to try a bit of a challenge later, throwing The Witcher 3 at it. If that runs decently, I'll just assume World of Tanks is horrible, and I'll have to live with lower settings in game :)

 

Thank you very much for all your help so far.

Please do and report back your findings.

 

I started out with something different. Ran a 3DMark on both VMs at the same time.

This is the result from mine:

http://www.3dmark.com/3dm/10300777?

 

My GF, who's running with only three threads (tried having CPU 0 unassigned as per the idea further up) got a score of about 5800 points on a GTX 960, getting about 5970 if mine wasn't running. Pretty decent results I think, and much more in line with what your tests showed than what I could conclude from World of Tanks.

 

Will still try Witcher 3 later, and report back :)

 

Got to test out The Witcher 3. Running on 4 threads with most stuff on high or ultra, with Hairworks turned off, was hovering about 40-50 fps by my guess (I need to install Fraps), possibly more when not in a city. There was a problem with the mouse movement though, which might be to do with the game. There's a lot of mouse lag in menus without "Hardware cursor" turned on, and even in game with it turned on. I found some people talking about reducing the USB polling rate for the mouse to 125, haven't tried that yet. It's definitely playable though if the mouse problems get solved.

 

Best Regards :)

Link to comment

Another small update on my Witcher 3 findings. Using a USB polling rate of 125, forcing the game to 4 threads and everything else to 1 through a small program I found called CPU Control, it's like playing on a bare metal pc again. I allocated 5 cores in Unraid to my PC, 3 for the GF. It should be noted this was done with the GF's VM turned off, but I don't think it matters that much. I don't think Windows can handle an uneven number of cores, it only shows 4 threads.

 

Anyway, I'm getting more satisfied with my gaming experience now, though there are some hoops to jump through, and having things running in the background while playing might require some tinkering.

 

Best Regards :)

Link to comment

I'm going to try a bit of a challenge later, throwing The Witcher 3 at it. If that runs decently, I'll just assume World of Tanks is horrible, and I'll have to live with lower settings in game :)

 

Thank you very much for all your help so far.

Please do and report back your findings.

 

Final update on World of Tanks. It turns out the mods I had been running on my bare metal machine, where my framerates were fine, were killing my framerate on my VM. I suspect something with the way they were handled in relation to the CPU queue.

 

Anyway ,after uninstalling those, it's all smooth sailing. :)

Link to comment
  • 3 weeks later...

I find all of this fascinating. I've been using unRAID for quite a while but I hate having to have multiple computers in the house (I use an iMac for most of my daily activities).

 

With the release of VR headsets just on the horizon I've been wanting to jump on board but obviously the iMac won't cut it performance wise and my current unRAID build won't cut it either.

 

Will I be able to use an Oculus or HTC Vive using a virtualized windows 10 through unRAID? I'm guessing not many people have tried this but can anyone shed any information if this may be possible? If so I'll definitely consider buying a beast rig...

Link to comment

I find all of this fascinating. I've been using unRAID for quite a while but I hate having to have multiple computers in the house (I use an iMac for most of my daily activities).

 

With the release of VR headsets just on the horizon I've been wanting to jump on board but obviously the iMac won't cut it performance wise and my current unRAID build won't cut it either.

 

Will I be able to use an Oculus or HTC Vive using a virtualized windows 10 through unRAID? I'm guessing not many people have tried this but can anyone shed any information if this may be possible? If so I'll definitely consider buying a beast rig...

 

In theory, yes.  We will be ordering one so we can do testing to ensure a smooth experience, but that's mainly testing around the USB connections, not the video (as that should work the exact same as it does today for us with normal monitors and GPU pass through).

Link to comment

 

In theory, yes.  We will be ordering one so we can do testing to ensure a smooth experience, but that's mainly testing around the USB connections, not the video (as that should work the exact same as it does today for us with normal monitors and GPU pass through).

 

that's exciting. It's been a dream for a while now to have one computer to do everything.

Link to comment
  • 1 month later...

sorry for the noob question. But is it possible to share CPU and memory for the 2 users using unRaid or KVM virtualization???

 

Say my wife and i share the same computer and most of the time we split in the middle half of the vCPU half of the RAM available. But sometimes i want to use 90% of available cpu and ram power for heavy duty application while shes watching TV

 

Is it possible to set up so that the cpu and ram are shared in a pool for the 2 sepearate VMs?(seprate ssd and gpu)?

 

How will the performance be affected?

 

My wife and I probably won't play intensive game but it's awesome that Virtual Desktop seems to be performance so well with small loss in performance comparing to baremetal! This is exciting

 

~Thanks guys  :D

Link to comment

When you setup a VM you dedicate so many CPU cores and so much RAM for that VM, those resources are yours to use as you see fit. If you find that you need more CPU, you can assign more cores later on. If you have a quad core CPU, you effectively have 8 cores to work with. For gaming, you shouldn't need any more then 2 CPU cores, leaving 6 for another VM and then some for UnRaid, its important that you remember UnRaid needs resources too. So if you create a second VM for your wife, and assign her 2 cores, you are free to max out your cores as much as you want, it won't affect her or UnRaid. Also if you have your own discreet GPU, you can max that out all you want, if your wife has her own GPU, it won't affect her at all. I hope this answered your question.

Link to comment

RAM cannot be shared between VMs.  Cores can be shared by simply assigning them to both VMs, but you have no control over how they will be scheduled between the VMs (this is under KVM subsystem control) so most people tend to work with dedicated cores when predictable performance matters.

Link to comment

Thanks for the response guys.

Following up with that, would it be possible to use 2 SSDs as OS drives and SSD cache? (in a 2 concurrent users 1 computer environment - and not RAID0). Let me to explains visually

 

SSD1:  [120GB or 240GB SSD]

____contains ConcurrentUser1 boot VM with Win7/OSes and most frequently used applications installed

____64GB of User2's SSD2 for cache for other apps installed on the HDD that might get frequently used 

 

SSD2:  [120GB or 240GB SSD]

____contains ConcurrentUser2 boot VM with Win7/OSes and most frequently used applications installed

____64GB of User1's SSD1 for cache for other apps installed on the HDD that might get frequently used

 

HDD:

____Shared slow 7200RPM hard drive for everything else

 

Motherboard would be something that support Intel Smart Response Tech. Or even perhaps the ASUS Sabertooth X79 which can surpass the 64GB cache limitation.

 

Any advice? Would this work at all doing cross-caching? would it improve performance at all if you separate OS drive and cache drive on separate SSD?

Link to comment
  • 1 month later...

Hello folks,

 

I have kind of an problem over here. First I'll tell you abut my system which has the following specifications:

 

Motherboard: Asus Z9PED-WS, Dual Socket 2011

CPU: 2x Intel Xeon E5-2670 8*2,6Ghz / 3,3Ghz Turbo (16 Threads each, 32Threads total)

RAM: 16GB Registred ECC DDR3 1333Mhz from HP

GPU: Asus GTX 760 + Inno3d GTX 770 iChill HerculeZ

 

Unraid Verision: tested 6.17 / 6.18 / 6.19 and now on 6.20 Beta2

 

I tired setting up a gaming VM and did some benchmarks betweer barebones performence and VM performence assigning the following resources:

 

2 / 4 / 6 / 8 / 32 Cores

8GB of Ram - fixes for all Configs

GTX 760 / GTX 770 (only one at a time)

 

 

With any of those configs I have seen a performence hit of about 30%. I used CS:GO as my testing suite hence I play it alot. Using a benchmark MAP which basically runs a cinematic I was able to capute the average FPS on each config. Each config ran the benchmark 3 times and the result was averaged.

 

2 Cores + 760 -94.3 FPS

4 Cores + 760 - 124.9 FPS

6 Cores + 760 -127.1 FPS

8 Cores + 760 - 127.1 FPS

32 Cores + 760 - 127.3 FPS

Bare bones - 176.4 FPS

 

2 Cores + 770 - 154.3 FPS

4 Cores + 770 - 164.9 FPS

6 Cores + 770 -171.7 FPS

8 Cores + 770 - 174.2 FPS

32 Cores + 770 - 179.1 FPS

Bare bones - 246.0 FPS

 

 

Latest XML:

 

<domain type='kvm'>
  <name>Windows 8.1</name>
  <uuid>4f5d86fc-5587-d459-b26d-0451d606a8ba</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 8.x" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>6291456</memory>
  <currentMemory unit='KiB'>6291456</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>8</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='20'/>
    <vcpupin vcpu='1' cpuset='21'/>
    <vcpupin vcpu='2' cpuset='22'/>
    <vcpupin vcpu='3' cpuset='23'/>
    <vcpupin vcpu='4' cpuset='24'/>
    <vcpupin vcpu='5' cpuset='25'/>
    <vcpupin vcpu='6' cpuset='26'/>
    <vcpupin vcpu='7' cpuset='27'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.5'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='4' threads='2'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/VMs/Microsoft.Windows.8.1.x86.x64.AIO.German.iso'/>
      <target dev='hda' bus='sata'/>
      <readonly/>
      <boot order='2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/VMs/virtio-win-0.1.112-1.iso'/>
      <target dev='hdb' bus='sata'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/VMs/Windows 8.1/vdisk1.img'/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:30:37:96'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <source mode='connect'/>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='pci' managed='yes' xvga='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x04' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc05b'/>
      </source>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x04b4'/>
        <product id='0x0101'/>
      </source>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
    </memballoon>
  </devices>
</domain>

 

 

Any advice here? I would be verry happy if someone could help.

 

THANK YOU

Link to comment
  • 2 months later...

Hello. I'm brand new to unRAID, and I've been considering the hardware for my first installation.  The more I read about utilizing the same rig for unRAID and gaming, the more compelling it sounds.  I've been toying with the idea of updating my gaming PC, and this would give me a good reason to do so.  I have one big question, though.

 

I've come to understand that ECC RAM is *highly* recommended for data integrity on NAS.  Unfortunately, none of the high end gaming processors support it. This would lead me to believe I am limited to a Xeon processor with integrated graphics (unless it's simple enough to just install a second, inexpensive discreet GPU for use by unRAID, while I pass through my souped up gaming GPU to my gaming VM).

 

Then I see Jon post his specs and notice that he isn't using ECC memory.  Is the use of ECC RAM not as critical as I thought?

 

Link to comment

ECC simply adds an additional layer of protection to your server => single-bit memory errors will be automatically corrected.  I definitely think this is a good feature on a NAS ... you want fault-tolerance for your storage (hard disks) ... so why not also ensure that your data isn't subject to errors caused by random bit errors.

 

As for just how important it is => modern memory is very reliable, but there IS a non-zero incidence of random bit errors over time due to sunspots; electrical noise; etc.  These errors are MUCH less likely if you don't load the memory bus too much.  If you're using unbuffered RAM (which is most likely) you should only install 2 memory modules.  This will be far more reliable than installing the 4 modules that many boards provide space for -- with that much bus loading the data and address signals are significantly degraded, and you're far more likely to have random bit errors.

 

Is ECC absolutely required?  No.  But it definitely adds to your system's reliability.  Personally I wouldn't build a server without it.

 

Link to comment
  • 2 months later...

Ordered a Kill A Watt last night and should be here next week.  I'm actually very curious now to test this for myself and see what we can do to make this even more power efficient.  My tests will also include comparing a two system setup (where a lower power NAS is left on 24/7 and a separate gaming rig is powered on for a few hours at a time) against a consolidated system that can do both (but where the gaming VM is only booted up for a few hours at a time).

 

Got the Kill A Watt today and already ran through some tests that have revealed some good things.  Have a lot more testing to do, but from the "quick-n-dirty" tests we did today, it definitely seems as if the GPU is entering in a low power state as expected when the VM is shut down or set to hibernate.  On my test system, it appears that the idle power consumption with no VMs / Containers running was around 70-76 watts.  With a VM turned on that also passed through a GPU and an Avermedia capture card, power consumption (with the VM idling) was jumping around the 90 watt range (would go as low as 88 watts and as high as 95 watts).  Powering down the VM (or setting to hibernate from within the guest) would return the idle power consumption to the same 70-76 watts as after first boot.

 

Like I said, lots more testing to go, but it does appear that my GTX 780 is managing power as efficiently as it can.

 

Hello Jonp,

 

Were you able to do more testing about how much power does the GPU take when the VM are off?

 

Thank you.

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.