March 15Mar 15 Community Expert Hallo zusammen,ich habe ein hartnäckiges Performance-Problem bei SMB-Transfers in meiner Windows 11 VM unter Unraid und benötige eure Expertise bei der Analyse des Netzwerk-Stacks.System-Eckdaten:Unraid Version: [Deine Version einfügen]CPU: [AMD Ryzen Threadripper PRO 7975WX 32-Cores @ 4000 MHz]Unraid Version : 7.2.4Ram 128 GB DDR5 ECC RdimmGpu : Nvidia 5090 RtxMotherboard : ASUSTeK COMPUTER INC. Pro WS WRX90E-SAGE SE , Version Rev 1.xxAmerican Megatrends Inc., Version 1317BIOS Datum: Dienstag, 03.02.2026<?xml version='1.0' encoding='UTF-8'?><domain type='kvm'> <name>Windows 11</name> <uuid>6d688bd3-b8f9-69ca-dc59-68fa0d5b29d7</uuid> <metadata> <vmtemplate xmlns="http://unraid" name="Windows 11" icon="windows11.png" os="windowstpm" storage="default" iconold="windows11.png" webui=""/> </metadata> <memory unit='KiB'>33554432</memory> <currentMemory unit='KiB'>33554432</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>8</vcpu> <cputune> <vcpupin vcpu='0' cpuset='12'/> <vcpupin vcpu='1' cpuset='44'/> <vcpupin vcpu='2' cpuset='13'/> <vcpupin vcpu='3' cpuset='45'/> <vcpupin vcpu='4' cpuset='14'/> <vcpupin vcpu='5' cpuset='46'/> <vcpupin vcpu='6' cpuset='15'/> <vcpupin vcpu='7' cpuset='47'/> </cputune> <os> <type arch='x86_64' machine='pc-q35-9.2'>hvm</type> <loader readonly='yes' type='pflash' format='raw'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader> <nvram format='raw'>/etc/libvirt/qemu/nvram/6d688bd3-b8f9-69ca-dc59-68fa0d5b29d7_VARS-pure-efi-tpm.fd</nvram> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <hyperv mode='custom'> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vpindex state='on'/> <synic state='on'/> <stimer state='on'/> <vendor_id state='on' value='none'/> </hyperv> <kvm> <hidden state='on'/> </kvm> <ioapic driver='kvm'/> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' clusters='1' cores='4' threads='2'/> <cache mode='passthrough'/> <feature policy='require' name='topoext'/> </cpu> <clock offset='localtime'> <timer name='hpet' present='no'/> <timer name='hypervclock' present='yes'/> </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/media/Medien/Diskimages/tiny11_25H2_Nov25.iso'/> <target dev='hda' bus='sata'/> <readonly/> <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/media/Medien/Diskimages/virtio-win-0.1.285-1.iso'/> <target dev='hdb' bus='sata'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='usb' index='0' model='nec-xhci' ports='15'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x8'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x9'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0xa'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0xb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/> </controller> <controller type='pci' index='5' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='5' port='0xc'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/> </controller> <controller type='pci' index='6' model='pcie-to-pci-bridge'> <model name='pcie-pci-bridge'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </controller> <controller type='pci' index='7' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='7' port='0xd'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/> </controller> <controller type='pci' index='8' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='8' port='0xe'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x6'/> </controller> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:72:af:c2'/> <source bridge='br0'/> <model type='virtio-net'/> <driver name='vhost' queues='8'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' 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='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <tpm model='tpm-tis'> <backend type='emulator' version='2.0' persistent_state='yes'/> </tpm> <audio id='1' type='none'/> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0xc1' slot='0x00' function='0x0'/> </source> <rom file='/mnt/media/vbios/rtx5090.rom'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0xc1' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x8d' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0xe1' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </hostdev> <watchdog model='itco' action='reset'/> <memballoon model='none'/> </devices></domain>Storage-Backend: ZFS-Pool, Daten liegen direkt auf dem Pfad /mnt/media/Medien/ (kein FUSE/User-Share Overhead).Netzwerk: 10G-NIC, VM via virtio-net Bridge.Hardware-Beweis (Host-Storage): Um das Storage als Ursache auszuschließen, habe ich einen dd-Test auf dem Pool durchgeführt: dd if=/dev/zero of=/mnt/media/Medien/testfile bs=1G count=2 oflag=direct Ergebnis: 6,8 GB/s. Die Hardware-Basis ist also absolut potent.Konfiguration & Bisherige Versuche:VM-XML: <driver name='vhost' queues='8'/> ist aktiv.SMB: Multichannel ist sowohl auf dem Host als auch in der Windows-VM aktiv (Set-SmbServerConfiguration -EnableMultiChannel $true).Windows-VM:Aktuelle VirtIO-Treiber installiert.MTU testweise auf 9000 gesetzt.LSO, RSC und Checksum-Offloading deaktiviert.Beobachtung: Get-SmbClientNetworkInterface zeigt für das Interface RSS Capable: False.Das Problem: Beim Kopieren von Dateien klebt die Performance konstant bei 140–180 MB/s (ca. 13 % Netzauslastung im Task-Manager). Es fühlt sich wie ein "Deadlock" an, da die CPU-Auslastung nicht auf Volllast steht, aber die Datenpakete nicht "durchgehen".Meine Fragen:Warum erkennt Windows das vhost-Interface trotz queues='8' nicht als RSS-fähig (RSS Capable: False)?Ist dies ein bekanntes Problem beim Zusammenspiel von virtio-net und der Bridge unter Unraid bei 10G-Setups?Gibt es spezifische Samba-Parameter (smb-extra.conf) oder XML-Anpassungen, die diese künstliche Bremse lösen könnten?Ich habe die XML meiner VM hier angehängt und bin für jeden Hinweis dankbar, wie ich Windows dazu bringe, die volle 10G-Bandbreite zu nutzen. 4.<driver name='vhost' queues='8'/> wird leider nicht übernommen .Vielen Dank! tower-diagnostics-20260316-0028.zip
March 16Mar 16 5 hours ago, Tarawa said:Vielen Dank!mal abgesehen davon dass das furchtbar zu lesen ist ... und der Transfer "lokal" von VM <> pool nicht am NIC hängen sollte, ein paar Anmerkungen1/ Tiny VM überdenken, vielleicht fehlt ja was ;)2/ du schreibst 10G NIC, deine bond mit 2 NIC's welche jeweils 5G können und mit 1G verbunden sind ... (wobei du evtl. nur die lokale VM NIC meinst) 3/ DNS, du nutzt google und CF ? vielleicht mal lokalen Router testen4/ den ganzen multichannel Kram deaktivieren bzw, revidieren, sollte nicht nötig sein für single NIC und normale transfers sofern die CPU nicht im bottleneck wärerein von speed her sieht es ja fast so aus als würde es irgendwie über die 2x 1G Leitung laufen, da ich jetzt noch in Erinnerung hatte"VM mit eigener xml ohne libvirt da du deine eigene xml ...." und ich mir das oben nicht im Detail anschaue, vielleicht mal wirklich erstmal alles Standard testen, dann custom ?aus Erfahrung, einfache 10G lokal zu einem schnellen pool, ohne irgendwas einstellen zu müssen, kein Problem.
March 18Mar 18 Author Community Expert On 3/14/2026 at 10:00 PM, alturismo said:vorweg, das libvirt.img hat nichts damit zu tun wie du deine vm's betreibst, sprich ob per nvme pass oder vdisk.img, sprich, falscher Denk Ansatz.in dem libvirt.img sind persistent die xml Dateien hinterlegt, diverse VM (kvm qemu) Grundsettings, Bios TPM files, usw ...Lösungsansatz,1/M Dienst stoppen2/ das libvirt image löschen3/ VM Dienst startenevtl. auch zwischen 1 und 2 oder 2 und 3 Neustart falls das nicht gehen sollte, danach ist alles "blank", schätze du hast mit deinen Eingriffen was kaputt gemacht.Um deine vorhandenen vm's per xml halbwegs sauber einzuspielen, Beispiel1/ VM anlegen und NICHT startenjetzt hast du eine xml welche du im Form view komplett editieren kannst mit deinen speziellen Einträgen (was auch immer du da machst, wird seinen Grund haben), dabei aber die uuid nicht verwerfen !!! sprich, wenn du stumpf einfach deinen xml Inhalt rein kopierst, den uuid Eintrag aus der vorhandenen übernehmen, ebenso die Bios file settings falls die auch manuell sind.Danach kannst du die dann sauber starten sofern das alles korrekt ist was du daZFS Performance Analyse: 8x NVMe Gen4 Pool vs. Windows VMStatus: Host-Power vorhanden (5,6 GB/s), SMB-Schreiblimit bei ~300 MB/s.1. Hardware & Roh-Performance (Host)Pool: 8x NVMe Gen4 SSDs im ZFS RaidZ2.Benchmark: dd Write-Test auf Host-Ebene: 5,6 GB/s.Fazit: Die physische Anbindung und das ZFS-Setup auf Unraid sind voll leistungsfähig.2. Messwerte VM (Windows 11 / VirtIO)Lesen (SMB): ~600 MB/s (ca. 4,8 Gbit/s).Schreiben (SMB): ~300 MB/s (ca. 2,4 Gbit/s) – konstantes Plateau.SMB-Status: Trotz aktiver Optionen wird nur eine Single-Session (ein Kanal) genutzt.3. Bereits aktive OptimierungenZFS: atime=off, xattr=sa, compression=lz4, recordsize=128k.Unraid: Exclusive Shares aktiv (Direktzugriff auf /mnt/media/).VM: RSS (Receive Side Scaling) auf 16 Kerne konfiguriert, VirtIO-Netzwerk aktiv.SMB Extras (Aktueller Stand):Plaintextserver multi channel support = yes aio read size = 1 aio write size = 1 case sensitive = auto socket options = TCP_NODELAY 4. DiagnoseDas Problem ist nicht die Hardware, sondern die virtuelle Übergabe. Die Differenz zwischen 5,6 GB/s (Host) und 300 MB/s (VM) deutet auf ein Single-Threading-Limit im SMB-Protokoll oder eine Latenz-Bremse im Zusammenspiel mit dem ZFS-Schreibpuffer hin. tower-diagnostics-20260318-2206.zip
March 19Mar 19 @Tarawa nur mal angemerkt, wenn ich mich mit einer KI unterhalten will kann ich das selbst, dazu brauch ich das hier sicher nicht ;)
March 19Mar 19 Author Community Expert Ich hab gewisse Einschränkungen und ich nutze KI als Werkzeug um mir zu helfen alle relevanten Infos zusammen zu tragen 😒
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.