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.

VM Poor performance

Featured Replies

Hey guys, long time lurker here and i've finally given up and need your help.  I have very poor VM performance with win 10 (I have also tried win8 and ubuntu, both no good). I have been searching around the forums and haven't found a solution that works.

 

Fullscreen video in chrome is extremely laggy. In games I am usually around 15-25fps with very low settings.

One thing I did to try and narrow it down was I disabled cool n quiet in bios to keep the cpu at 4ghz, but it didn't change the performance at all. I am thinking GPU? Any thoughts?

 

Also I should note that I have tried pinning anywhere from 2-6 cpus, didn't make a difference.

 

Specs:

Unraid Plus 6.1.9

AMD FX-8350

ASUS M5A99FX PRO R2.0

MSI r9 280 3gb

16gb ddr3 1866

VMs are installed on cache samsung 850 evo

 

Win 10 VM XML:

<domain type='kvm' id='4' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>win10</name>
  <uuid>4dbb0bdd-296f-acff-ec99-f3a2639c8f10</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='6'/>
    <vcpupin vcpu='1' cpuset='7'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
    </hyperv>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='2' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <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='writeback'/>
      <source file='/mnt/cache/vdisks/win10/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='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/cache/vdisks/games/vdisk2.img'/>
      <backingStore/>
      <target dev='hdd' bus='virtio'/>
      <alias name='virtio-disk3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOs/Win10_1511_1_English_x64.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.112.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:49:08:26'/>
      <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/win10.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc080'/>
        <address bus='4' device='3'/>
      </source>
      <alias name='hostdev0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc24d'/>
        <address bus='4' device='2'/>
      </source>
      <alias name='hostdev1'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' 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=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/>
  </qemu:commandline>
</domain>

 

System Devices:

PCI Devices

00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (external gfx0 port B) (rev 02)
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD/ATI] RD990 I/O Memory Management Unit (IOMMU)
00:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (PCI express gpp port B)
00:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (PCI express gpp port D)
00:0b.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (NB-SB link)
00:0d.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890 PCI to PCI bridge (external gfx1 port B)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (rev 40)
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 42)
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA) (rev 40)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller (rev 40)
00:14.4 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 PCI to PCI Bridge (rev 40)
00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:15.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0)
00:15.1 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB700/SB800/SB900 PCI to PCI bridge (PCIE port 1)
00:15.2 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB900 PCI to PCI bridge (PCIE port 2)
00:15.3 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB900 PCI to PCI bridge (PCIE port 3)
00:16.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:16.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 1
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 2
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 3
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 4
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h Processor Function 5
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280]
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT HDMI Audio [Radeon HD 7970 Series]
06:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 01)
07:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
08:00.0 USB controller: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 09)
IOMMU Groups

/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:02.0
/sys/kernel/iommu_groups/2/devices/0000:00:04.0
/sys/kernel/iommu_groups/3/devices/0000:00:0b.0
/sys/kernel/iommu_groups/4/devices/0000:00:0d.0
/sys/kernel/iommu_groups/5/devices/0000:00:11.0
/sys/kernel/iommu_groups/6/devices/0000:00:12.0
/sys/kernel/iommu_groups/6/devices/0000:00:12.2
/sys/kernel/iommu_groups/7/devices/0000:00:13.0
/sys/kernel/iommu_groups/7/devices/0000:00:13.2
/sys/kernel/iommu_groups/8/devices/0000:00:14.0
/sys/kernel/iommu_groups/9/devices/0000:00:14.2
/sys/kernel/iommu_groups/10/devices/0000:00:14.3
/sys/kernel/iommu_groups/11/devices/0000:00:14.4
/sys/kernel/iommu_groups/12/devices/0000:00:14.5
/sys/kernel/iommu_groups/13/devices/0000:00:15.0
/sys/kernel/iommu_groups/13/devices/0000:00:15.1
/sys/kernel/iommu_groups/13/devices/0000:00:15.2
/sys/kernel/iommu_groups/13/devices/0000:00:15.3
/sys/kernel/iommu_groups/13/devices/0000:06:00.0
/sys/kernel/iommu_groups/13/devices/0000:07:00.0
/sys/kernel/iommu_groups/13/devices/0000:08:00.0
/sys/kernel/iommu_groups/13/devices/0000:09:00.0
/sys/kernel/iommu_groups/14/devices/0000:00:16.0
/sys/kernel/iommu_groups/14/devices/0000:00:16.2
/sys/kernel/iommu_groups/15/devices/0000:01:00.0
/sys/kernel/iommu_groups/15/devices/0000:01:00.1
USB Devices

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 011 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 010 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 010 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 009 Device 002: ID 125f:312b A-DATA Technology Co., Ltd. Superior S102 Pro
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 003: ID 046d:c080 Logitech, Inc. 
Bus 004 Device 002: ID 046d:c24d Logitech, Inc. G710 Gaming Keyboard
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
SCSI Devices

[0:0:0:0]    disk    ADATA    USB Flash Drive  1100  /dev/sda 
[1:0:0:0]    disk    ATA      Samsung SSD 850  2B6Q  /dev/sdb 
[2:0:0:0]    disk    ATA      Crucial_CT128M55 MU01  /dev/sdc 
[3:0:0:0]    disk    ATA      ST3000DM001-1ER1 CC25  /dev/sdd 
[4:0:0:0]    disk    ATA      TOSHIBA MD04ACA5 FP2A  /dev/sde 
[5:0:0:0]    disk    ATA      WDC WD50EZRZ-32G 0A80  /dev/sdf 
[7:0:0:0]    disk    ATA      WDC WD5000BEVT-2 1A01  /dev/sdg 
[8:0:0:0]    disk    ATA      WDC WD30EZRX-00M 0A80  /dev/sdh

 

Let me know what other info is needed

 

Thanks

I'd recommend trying the 6.2 beta as it has updated virtualization tech that may perform better for you (newer kernel, newer qemu, newer libvirt, etc).

AMD FX is the problem, atleast i think... There is already an running post on this subject, see https://lime-technology.com/forum/index.php?topic=47089.0

 

The OP has almost the same hardware config as you. I also use an AMD FX series, and i have the same problem.

 

But im 99% sure that the bottleneck is the CPU. It seems unraid, libtvirt, vfio, kvm, qemu doesnt like the amd fx series.

 

I have an Intel CPU (i5 4670k) also and im going to test this with Unraid.

AMD FX is the problem, atleast i think... There is already an running post on this subject, see https://lime-technology.com/forum/index.php?topic=47089.0

 

The OP has almost the same hardware config as you. I also use an AMD FX series, and i have the same problem.

 

But im 99% sure that the bottleneck is the CPU. It seems unraid, libtvirt, vfio, kvm, qemu doesnt like the amd fx series.

 

I have an Intel CPU (i5 4670k) also and im going to test this with Unraid.

I did not have any performance problem with my AMD fx CPU, so the AMD fx CPU is not the problem as far as I see it.

Oke, can you tell us something about the setup and config:

 

Hardware: (cpu,mobo,gpu etc)

unRaid version:

Software: (OS, driver version GPU)

 

Its not that i dont believe you, but im a little skeptic. There are a few people that seem to suffer from stuttering/low fps.

 

see:

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

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

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

 

They al use an AMD FX CPU and an AMD/ATI based GPU.

 

So likey there is something going on with the AMD FX or AMD based GPU or maby the combination of the two.

 

Maby its just an bad config, but im going to try an intel based cpu with the same GPU to see if maby this causes the problem.

 

Does anyone have any suggestions regarding what to try and test ?

 

 

 

 

Generally speaking, we prefer Intel CPUs and NVIDIA GPUs over anything AMD.  Add virtual machines to the mix and "prefer" changes to "strongly recommend."  While some users may have no problems using AMD devices with virtualization, there are far more that do and far less have issues when using Intel / NVIDIA based hardware.  I don't think AMD tests nearly as much as Intel does when it comes to virtualization technology on consumer-class chipsets.  Certainly not for their GPUs.

  • Author

I updated to the latest 6.2 beta, upgrade went flawlessly and I'm loving the dual parity.  Games now typically run around 50fps on medium settings. I'm just glad they are playable now, not a hardcore gamer but more of a weekend warrior, so I'm not too picky.  Good to know that intel/nvidia is preferred, I may upgrade to a more low power solution in the future and I'll keep that in mind. Thanks for your help.

You have 8 cores with your cpu.

 

Try this isolaote 4 of your cpu cores from linux by using  isocpu in the lixuxsys.config (this will prevent the host linus os from using these cores at all)

for example-

append isolcpus=4,5,6,7 initrd=/bzroot

 

I dont think your amd cpu does hyperthreading and it is just 8 plain cores, so you dont have to worry about making sure the thread pairs are from the same cpu core.

(if your cpu does infact use an amd equivilent of hyperthreading, then make sure you isolate the thread pairs related to the physical core) check by looking at tools, system devices then scroll down to CPU Thread Pairings to check this.)

 

I have had excellent results doing this and has really improved my vms

Once you have added the isolcpu to your linuxsys config file reboot your server.

 

Now in your vm manager pin the cores you just isolated to the vm (do not pin any additional cores)

 

After doing this you will need to add a line to your xml

(becareful if you edit the vm in future what you added via the xml will be lost)

 

<emulatorpin cpuset=0,1,2,3''/>

 

What this does is to tell the vm that all vm emulation is to be done by vcpu no 0,1,2,3

This is useful as it keeps it off the cores the vm is using and will greatly reduce latency.

 

so you would add it under the vcpu pin part of your xml

 

 <cputune>
    <vcpupin vcpu='2' cpuset='4'/>
    <vcpupin vcpu='3' cpuset='5'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <vcpupin vcpu='5' cpuset='7'/>
<emulatorpin cpuset=0,1,2,3''/>
  </cputune>

 

The only downside to doing this is the isocpu cores are not available to the host (unraid). But for nas operations unraid is very efficient so 2 cores would be fine for it. Running dockers doing transcoding etc obviously will use more resources. However you can pin these isolated cores to dockers aswell even though they have been isolated.

If you do pin to a core to a docker aswell then make sure the docker isnt running when you are using the vm or else it will effect the vm performance.

 

Have a look at the excellent post made by dlandon here http://lime-technology.com/forum/index.php?topic=49051.msg472193#msg472193

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.