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.

Vms and extreme cpu usage

Featured Replies

I have a vm setup, my machine shows 4 cores possible to assign. I'm guessing it doesn't show hyperthreaded ones anymore? I have an i5-4590 so it must just be showing the 4 physical cores? Anyways, I assigned 2 cores to the vm, leaving core 0 free for unraid. With just a single instance of a game open, it literally hits 98% cpu utilization. It should be nowhere near that natively. I am now trying to assign all 4 cores just to see how it performs for testing, but how can I work on this issue? Not sure where to start even. All the normal optimization procedures have been done, as illustrated in the unraid windows 10 youtube video. I also don't have a parity or cache drive, so it shouldn't be related to IO backlog. For cpu mode, it's passing through the i5 directly, not using the qemu emulation. Unraid version is 6.1.9. Inside the vm, task manager doesn't show anything unusual on the cpu utilization list. What is unusual, is that a program that should be using like 15% of the cpu, is using 28%+ with spikes.

 

For a reference, when I had windows on this machine. I ran just regular vmware workstation through it, and was able to run 3 instances of this exact game without breaking a sweat. something is super sucking on the cpu. I have caadvisor, its not any of my docks. Just shows the vm process at 157% cpu. Also, from the dashboard it shows cpu utilization 70+ with spikes going even higher

I have a vm setup, my machine shows 4 cores possible to assign. I'm guessing it doesn't show hyperthreaded ones anymore? I have an i5-4590 so it must just be showing the 4 physical cores?

The i5 4590 doesnt have hyperthreading it only has 4 threads and 4 cores http://ark.intel.com/products/80815/Intel-Core-i5-4590-Processor-6M-Cache-up-to-3_70-GHz

 

Please post more info like your vm xml file so we can see your vm setup. Are you passing through a gpu?

I ran just regular vmware workstation through it, and was able to run 3 instances of this exact game without breaking a sweat

Which game are you running? Also are you running any other dockers or vms at the same time as the win 10 vm?

  • Author

I am passing through a gpu. The game is world of warcraft. You'll see in this xml I'm currently assigning it all 4 cores, that was just to test vs the 2 core assignment. It is doing better, although still crappy. My understanding was that I would see a performance INCREASE with a hypervisor 1, vs just vmware workstation. It is actually the opposite in this scenario. I do have a few dockers running, but they are using next to 0 resources. OpenVPN(unused), guacamole and duckdns. All are sub 1% according to caadvisor. I did look around on google for a bit, and I see unraid has some issues with win 10 in their 6.2 build. Is this also true for the stable 6.1.9 release? I would happily go to 8 or 7 even if it meant more native performance.

 

With just the 1 vm running, the dashboard is showing 70+% cpu usage and spikes. I'm basically capping my entire system out with a single windows emulation

 

<domain type='kvm' id='1' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Dan</name>
  <uuid>b512f3b0-384e-755c-5e2f-83cf67e15b34</uuid>
  <description>dan's</description>
  <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'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='3'/>
  </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='4' 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='writeback'/>
      <source file='/mnt/user/Vdiscs/dan/vdisk1.img'/>
      <backingStore/>
      <target dev='hdb' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk1'/>
      <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/virtio-win-0.1.118.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>
    <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='68:54:00:5d:e3:ff'/>
      <source bridge='virbr0'/>
      <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/Dan.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>
    <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=02:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
  </qemu:commandline>
</domain>

Just quickly try this and see if this helps

change this part of xml

 

<vcpu placement='static'>3</vcpu>

  <cputune>

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

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

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

    <emulatorpin cpuset='0'/>

  </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='3' threads='1'/>

  </cpu>

  • Author

Well, it seemed to help kind of. Utilization in the vm is better(about 10% less than before), but still getting bad spikes. Dashboard actually spikes up to 99% util from just the 1 emulation. I noticed you removed one of the cores, are we just leaving that to unraid? I'm trying to google about cpu pinning atm to better understand what the changes being made are as well :)

ok. well at least a step in the right direction

The <emulatorpin cpuset='0'/> part pins the emulation calls to cpu 0. So is keeping other cores 1,2,3 just for the vm.

Unraid for its own use always prefers core 0 aswell so good to keep it not pinned to a vm.

 

I see you are assigning 7 gigs of ram to the vm. how much ram do you have in the whole system? If only 8 i would put ram down in vm to 6 gigs or less.

 

Maybe give a try setting up a win 7 vm and see if any difference in performance?

  • Author

Ah ok, thanks for the explanation and the help, I really appreciate it! The system has 16 gigs available. I have 7 gigs to this vm, and 5 to another, but since just this 1 vm is so demanding I haven't even been running the other for now. I am curious about older windows versions as well, just because I see the 6.2 build having a lot of discussion/issues with win 10 performance. I'm not sure how that reflects upon my stable version but I imagine it can't be great at this point. Do you know if win 8 is perfected in kvm yet, or is 7 the most stable? A lot of performance increases in the later windows compared to 7 but I'm not sure how much time the kvm development people need to really get things hashed out.

Ah ok, thanks for the explanation and the help, I really appreciate it! The system has 16 gigs available. I have 7 gigs to this vm, and 5 to another, but since just this 1 vm is so demanding I haven't even been running the other for now. I am curious about older windows versions as well, just because I see the 6.2 build having a lot of discussion/issues with win 10 performance. I'm not sure how that reflects upon my stable version but I imagine it can't be great at this point. Do you know if win 8 is perfected in kvm yet, or is 7 the most stable? A lot of performance increases in the later windows compared to 7 but I'm not sure how much time the kvm development people need to really get things hashed out.

 

I am running 6.2 rc2 unraid and dont have a problem with win 10 myself, although i do notice a slower startup of vm and cpu spiking to 99/100 during boot but then settles to about 2 to 5 percent once booted with nothing running on vm. This spike however only occurs when i passthrough a gtx 1070. if i passthrough my older hd6450 or use vnc i dont get any boot delay or spike. I dont know if this boot problem is my gtx 1070 for the newer unraid as i got them both at same time. (before i was using gtx 970 and unraid 6.19 and didnt have this issue?

Anyway maybe try using bios type ovmf if you are using seabios. And if using omvf maybe try seabios. Seabios is more compatible but i get better perfomance using omvf. However using omvf and passing through a gpu the graphics card must support eufi. most newer ones do. but if you try omvf and get a black screen probably card isnt eufi compatible.

 

i run windows vms from win 98! through to win 10 (the only one i dont have is 8 because personally i hate 8 ) but all work fine that i have tried

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.