
Ich habe einen Arch Linux-Host, auf dem ein virtualisierter Router läuft.
Wenn ich einen LXC-Gast als Router verwende, ist alles in Ordnung. Ich erhalte 100 MBit Up/Down und fast überhaupt keine CPU-Auslastung.
Wenn ich jedoch libvirt gest (pfSense FreeBSD) als Router verwende und viel Netzwerkverkehr über den Gast läuft, steigt die CPU-Auslastung unangemessen hoch (bis zu 100 %), aber das Schlimmste ist, dass der Netzwerkdurchsatz halbiert wird! Ich erhalte maximal 45–49 Mbit/s.
Der Host unterstützt kein PCI-Passthrough, daher ist dies meine Konfiguration für die libvirtd-VM:
Nic1 (wan)
Network source: Direct ‘eth0’
Source mode: passthrough
Device model: virtio
Nic2 (lan)
Bridge name: br0
Device model: virtio
Ich habe stattdessen E1000 ausprobiert, aber es ändert sich absolut nichts.
Host CPU: AMD A4-5000 Kabini
Guest CPU: default or Opteron_G3
Die Hardwareabfrage in pfSense ist deaktiviert und pfSense ifconfig zeigt Folgendes an:http://storage5.static.itmages.com/i/16/1217/h_1481996196_8871112_a2f0d75655.png
Das ist nun schon seit über einem Jahr so, seit ich KVM verwende. Wenn ich dieses Problem nicht löse, muss ich libvirt aufgeben, da eine solche Leistung inakzeptabel ist.
Antwort1
Dies hängt mit den FreeBSD-Treibern für Virtio zusammen; sie sind einfach nicht in der Lage, so schnell zu laufen wie Linux-Treiber.
https://forum.proxmox.com/threads/poor-virtio-network-performance-pfsense-guest-proxmox-3-4.23933/
^^ Der obige Beitrag beschreibt detailliert einige Dinge, die Ihnen helfen können, z. B. das Deaktivieren von Hardware Checksum Offload auf dem Gast und Host sowie in den pfSense-Einstellungen (starten Sie die VM vor dem erneuten Testen unbedingt neu).
Ich habe versucht, pfSense auf Proxmox (Debian-Basis) auszuführen und erhalte auf Gig-Schnittstellen auf Bare Metal 940–980 Mbit/s, auf VM-Gästen jedoch maximal 650–700 Mbit/s.