Borbosch Posted April 16, 2019 Share Posted April 16, 2019 (edited) Hello Community, for nearly 1 month I’m trying to build a ryzen 1800x server for two windows VMs (one for myself and one for my wife) and some Docker-Containers. Hardware in use: Asus Prime X470-Pro Ryzen 1800x 32 GB Ram in Dualchannel Asus GTX 1080 Nvidia 710 GT PCIE 1x Technotrend TT-budget S2-4200 Twin DVB-S2 Intel Pro 1000 VT Quad Port NIC 2x NVME Samsung 960 EVO M.2 SSD - 250GB 1x 8TB Seagate Archive HDD as Parity 1x Toshiba HDWF180EZSTA X300 as Disk 1 1x INTEL_SSDSA2CT040G3 40 GB SSD as Cache The VM in question is a Windows 10 Installation on one of the Samsung 960 EVO NVME passed through. The problem shows itself while trying to copy files from the one of the smb-shares to the machine. The speed is about 20 megabyte/s. While transferring the machine locks one thread at 100 %. I tried the same from the array and from the cache disk. No difference. Writing from the vm to one of the shares is full gigabit speed (110 megabyte/s). Now to the strange part: I tested this with and without passed through graphics card without a difference except: With the graphics card passed through and playing a video the transferrate goes up again to full 110 megabyte/s. This behaviour can be reproduced with other gpu-bound tasks, like playing games, watching 4k Youtube Videos or streaming via splashtop. I can’t wrap my head around that. Why is the transferrate slow when the GPU does nothing and goes up when the GPU is active. Any ideas? XML of the VM only with vnc: <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm'> <name>Windows 10</name> <uuid>523108a2-28f1-90d9-d7ee-489c359b912d</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>16777216</memory> <currentMemory unit='KiB'>16777216</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>10</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'/> <vcpupin vcpu='6' cpuset='12'/> <vcpupin vcpu='7' cpuset='13'/> <vcpupin vcpu='8' cpuset='14'/> <vcpupin vcpu='9' cpuset='15'/> </cputune> <os> <type arch='x86_64' machine='pc-i440fx-3.0'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/523108a2-28f1-90d9-d7ee-489c359b912d_VARS-pure-efi.fd</nvram> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough' check='none'> <topology sockets='1' cores='10' 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/local/sbin/qemu</emulator> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/virtio-win-0.1.160-1.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </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='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='0x04' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:dd:f0:67'/> <source bridge='br4'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'> <listen type='address' address='0.0.0.0'/> </graphics> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </hostdev> <memballoon model='none'/> </devices> </domain> XML of the VM with 1080 GTX passed through: <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm'> <name>Windows 10</name> <uuid>523108a2-28f1-90d9-d7ee-489c359b912d</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>16777216</memory> <currentMemory unit='KiB'>16777216</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>10</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'/> <vcpupin vcpu='6' cpuset='12'/> <vcpupin vcpu='7' cpuset='13'/> <vcpupin vcpu='8' cpuset='14'/> <vcpupin vcpu='9' cpuset='15'/> </cputune> <os> <type arch='x86_64' machine='pc-i440fx-3.0'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/523108a2-28f1-90d9-d7ee-489c359b912d_VARS-pure-efi.fd</nvram> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough' check='none'> <topology sockets='1' cores='10' 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/local/sbin/qemu</emulator> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/virtio-win-0.1.160-1.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </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='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='0x04' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:dd:f0:67'/> <source bridge='br4'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x0e' slot='0x00' function='0x0'/> </source> <rom file='/mnt/user/domains/gtx1080.rom'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x0e' slot='0x00' function='0x1'/> </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='0x01' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </hostdev> <memballoon model='none'/> </devices> </domain> Diagnostics while slow transfer und fast transfer while gpu active as attachment. Thanks in advance for your help! tower-diagnostics-with 1080.zip tower-diagnostics-vnc.zip Edited April 18, 2019 by Borbosch Tagged solved Quote Link to comment
Borbosch Posted April 17, 2019 Author Share Posted April 17, 2019 Update: Further testing shows, that not the usage of the gpu makes the performance better, but the usage of the HDMI Sound Device. Every time some sound is played back the transferrates jump up. With the silence the transferrate drops again. There are tools that play a constant silent sound to keep driver active but that is no workaround for me, because i don't always use the HDMI-Output. Maybe it has to do with dynamically changes of the PCIE-Speeds and line-usage for power saving features? I tried "lspci -vv | grep LnkSta" while the changes in the transferrates appear, but the width of all devices stay the same. But maybe the output of the lspci shows no real time info, i don't know. I would be grateful if someone has an idea what to look at next. Quote Link to comment
Borbosch Posted April 18, 2019 Author Share Posted April 18, 2019 Update2: Yesterday i changed from the Asus Prime X470-Pro to a new Asus ROG Strix B450-F. The problem persists. I created a vdisk from the passed through nvme via qemu-img convert and used it. The problem persists. It seems that the problem lies within the windows installation itself... I will start from scratch with a new Windows installation... Quote Link to comment
Borbosch Posted April 18, 2019 Author Share Posted April 18, 2019 I solved it! The problem was eset internet security. The new installation of windows worked with high transferspeeds until i installed eset. On my windows machines i will only install eset nod32 for antivirus and thats that. Quote Link to comment
Recommended Posts
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.