Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

2 Gamers - 1 PC

Featured Replies

Hello all,

 

Prior to setting up unRAID I tried Ubuntu w/KVM. It wasn't too crazy to setup GPU passthrough, but it also wasn't 100% straight forward. It was more of a 'can I do this' type of project.

 

WELL! My wife needs a new PC to play World of Warcraft when the expansion comes out. My PC is a Intel Core i7 5820K (6 cores w/hyperthreading)

I use a GTX 760. I just bought and installed a GTX 960 for my wife. I now have a practical use for GPU passthrough.

 

So I first installed unraid 6.1.9 and added my SSD to "disk1" in the array (No Parity - I'm looking for a simple VM setup) - I got Windows loaded no problem with GPU passthrough working, with keyboard, mouse, and audio. All no problem. The first problem was Disk IO. Very poor sequential disk speeds (about 120MB/s) after hours of research and testing. I found that Unassigned Devices had the same problem, but editing the XML file and changing "caching=none" and "io=native" almost completely fixed my issue (write speeds still a little lower, but whatever - i'm not worried) now getting 480MB/s read and 144MB/s write.

 

So this setup worked fine.

 

Last night I added my second Virtual Machine. Immediately ran into the IOMMU Group limit issue (first sticky on this group forum) this was resolved and continued to push forward. Then both of my virtual machines would stop allowing USB input when playing audio. (USB Audio card). I removed the usb audio card and randomly USB would stop working. This was fixed by changing USB ports things were plugged into. Almost finished!

 

So I get world of warcraft boot up on both virtual machines. At first glance, PERFECT!! But then I have my wife use her PC while I use mine. Turning around kills FPS. Moving kills FPS.

 

My memory is not maxed on the Hypervisor - nor the CPU (only around 55 percent max)

 

If only one of the PC's is running at a time - the performance issues are not evident. I was a little surprised as I've assigned 6 threads to each PC.

 

Now last night I did a little bit of research and found that I should leave a core for the hypervisor, and try pinning my cores/threads. I'll be planning on doing this last thing before giving up and just buying a dedicated PC.

 

Just checking in to see if anyone can tell me if i'm in the right track, or if i'm missing anything. 

 

Thanks!

 

Hi,

I also have frame drops and lags on my VMS.

 

 

MY SYSTEM:

 

INTEL Core i7-5930K

Corsair Dominator Platinum 32GB @ 2666Mhz

Asus GTX 980 ti Strix vm2

Asus GTX 970 Strix vm1

ASUS Essence STX II

Asus ROG Rampage V Extreme

Samsung SSD 850 EVO 500 GB

Samsung SSD 840 EVO 500 GB

 

At first i would update your unRAID system to 6.2 rc3.

Than i would try to pair the hyperthread cores

http://lime-technology.com/forum/index.php?topic=49051.0

 

On my system a blizzard game is alao laggy. Im tested counterstrike go and tomb raider too. They dont have any problems with lags and fps drops. Diablo 3 lags like hell.

 

Perhaps you can post your xml of your vms that someone with more knownledge than me  can look to your settings.

 

 

 

 

 

 

  • Author

Thanks for the info! I'll try out 6.2 beta tonight with default settings, and again with the cache=no and io=native - then i'll try pinning the CPU cores (Thanks for the link, probably will take me more time to read and understand what I need to do vs actually making the change!) and see if things have improved.  If I can get this working i'll immediately purchase the product. Otherwise, i'll be paying $400 in extra hardware for a separate PC : (

 

My configs are below

 

My Virtual PC XML Config:

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Chris PC</name>
  <uuid>55ac7dd7-adf9-dd03-d7c8-2afc7cdab6b3</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>7340032</memory>
  <currentMemory unit='KiB'>7340032</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>6</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='3'/>
    <vcpupin vcpu='4' cpuset='4'/>
    <vcpupin vcpu='5' cpuset='5'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='6' threads='1'/>
  </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/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source file='/mnt/disks/Chris-SSD/Chris PC/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOs/Win10_Pro_1511_English_x64_july_2016.iso'/>
      <target dev='hda' bus='ide'/>
      <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/ISOs/virtio-win-0.1.118.iso'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:16:00: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='bind' path='/var/lib/libvirt/qemu/channel/target/Chris PC.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x1532'/>
        <product id='0x0037'/>
      </source>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc31c'/>
      </source>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=03:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1b.0,bus=root.1,addr=01.0'/>
  </qemu:commandline>
</domain>

 

 

This is my wife's Virtual Machine XML config:

 

<domain type='kvm' id='1' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Krystal PC</name>
  <uuid>b03813cd-84c3-5abe-2d83-5e4a6bc2e778</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>7340032</memory>
  <currentMemory unit='KiB'>7340032</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>6</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='6'/>
    <vcpupin vcpu='1' cpuset='7'/>
    <vcpupin vcpu='2' cpuset='8'/>
    <vcpupin vcpu='3' cpuset='9'/>
    <vcpupin vcpu='4' cpuset='10'/>
    <vcpupin vcpu='5' cpuset='11'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='6' threads='1'/>
  </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/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source file='/mnt/disks/Krystal-SSD/Krystal PC/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOs/Win10_Pro_1511_English_x64_july_2016.iso'/>
      <backingStore/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <alias name='ide0-0-0'/>
      <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/ISOs/virtio-win-0.1.118.iso'/>
      <backingStore/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <alias name='ide0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:13:9e:da'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Krystal PC.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x04b3'/>
        <product id='0x3025'/>
        <address bus='3' device='5'/>
      </source>
      <alias name='hostdev0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0461'/>
        <product id='0x4d81'/>
        <address bus='3' device='4'/>
      </source>
      <alias name='hostdev1'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=06:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
  </qemu:commandline>
</domain>

 

 

I've also attached my diagnostics log just in case,

 

My hardware configuration is

 

Intel Core i7 5820K CPU (6 core with hyperthreading - 12 threads total)

Geforce 210 GPU (dedicated to unRAID) (Running @ 8x PCI-E)

Geforce 760 GPU (dedicated to VM1) (Running @ 8x PCI-E)

Geforce 960 GPU (dedicated to VM2) (Running @ 8x PCI-E)

120GB SSD (OCZ) @ 6Gbit - mounted using unassigned drives - caching=none io=native (assigned to VM1 - My PC)

120GB SSD (PNY) @ 6Gbit - mounted using unassigned drives - caching=none io=native (assigned to VM2 - Wife's PC)

 

I've applied this fix for the IOMMO Group issue going past 32 groups:

http://lime-technology.com/forum/index.php?topic=44010.0

 

 

 

 

unraid-diagnostics-20160803-0920.zip

You have to give only 2 Cores / 4 Threads to each maschine.

Unraid system also needs cpu:P

 

i think your cpu pairs are the same like mine cause i have 5930k

 

Core Pair: 0/6 unRAID (unassign)

Core Pair: 1/7 unRAID (unassign)

Core Pair: 2/8 Your VM

Core Pair: 3/9 Your VM

Core Pair: 4/10 Your Wife

Core Pair: 5/11 Your Wife

 

Your VM:

<cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
    <vcpupin vcpu='2' cpuset='8'/>
    <vcpupin vcpu='3' cpuset='9'/>
  <emulatorpin cpuset='0,6/>      <- Look in the thread i wrote you. you can put in as an option!
   </cputune>
[/Code]

 
Your Wife
 
[Code]
<cputune>
    <vcpupin vcpu='0' cpuset='4'/>
    <vcpupin vcpu='1' cpuset='5'/>
    <vcpupin vcpu='2' cpuset='10'/>
    <vcpupin vcpu='3' cpuset='11'/>
   <emulatorpin cpuset='1,7/>
   </cputune>

 

But at first. go update to unraid 6.2 and rebuild you VM with OVMF Bios and Machine pc-i440fx-2.5

 

Try to install another game to check if there are also lags. For me i know Diablo have a very bad code ^^

 

Hopefully i could help :P

 

best regards

 

 

  • Author

THANKS! You've cut my work out for me! This is the exact info I needed to start moving forward tonight.

 

I will do exactly this, and report back on status.

 

 

  • Author

No joy.

 

Can't get passed the "UEFI Interactive Shell" that comes up when booting the VM as described here,

 

https://lime-technology.com/forum/index.php?topic=39493.0

 

I get a "fs0: is not a valid mapping" error (or fs1:) - im guessing the uefi bios is a big part of the performance increase? If so - I'm stumped!

Hmm.

For this problem i dont have an answer.

 

I would try to setup one Maschine with seabios and machine 2.5.

And test the performance.

 

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.