Langsames Netzwerk bei virtuellen Gästen unter vmm

CommanderZed

OpenBSD User
Teammitglied
Hi zusammen,

ich verwende OpenBSDs vmm für eine kleine test-vm.

Allerdings ist der Netzwerkdurchsatz zu der vm wesentlich langsamer als der zum host. Die vm ist direkt mit einer Bridge mit dem Netzwerk verbunden.

Hat hier jemand villeicht eine idee ob ich da eine einstellung o.ä. übersehen hab?

/etc/vm.conf
Code:
vm "s4-webtestserver" {
    memory 1G
    disable
    disk /var/vm-storage/s4-webtestserver/s4-disk1.qcow2
    cdrom /var/vm-storage/isos/install65.iso
    interface { switch "my_switch" }
}

switch "my_switch" {
    interface bridge0
}

/etc/hostname.bridge0
Code:
add re0

/etc/hostname.re0
Code:
inet 192.168.100.12 255.255.255.0
inet6 autoconf
 
Der Gast ist auch OpenBSD ... wo muss das denn in der vm.conf genau hin?

Unter

https://man.openbsd.org/vm.conf

findet ich dazu nichts.

Im Gast zeigt er mir auch den "vio" an:

Gast
Code:
vio0: flags=208b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1492
        lladdr fe:e1:bb:d1:12:8f
        index 1 priority 0 llprio 3
        groups: egress
        media: Ethernet autoselect
        status: active
        inet 192.168.100.21 netmask 0xffffff00 broadcast 192.168.100.255
        inet6 fe80::a0a0:8cb9:76de:c952%vio0 prefixlen 64 scopeid 0x1
        inet6 as:12:sd ... prefixlen 64 autoconf pltime 1039 vltime 7145
        inet6  as:12:sd ... prefixlen 64 deprecated autoconf autoconfprivacy pltime 0 vltime 950
        inet6  as:12:sd ... prefixlen 64 deprecated autoconf autoconfprivacy pltime 0 vltime 2598
        
enc0: flags=0<>
        index 2 priority 0 llprio 3
        groups: enc
        status: active
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33136
        index 4 priority 0 llprio 3
        groups: pflog

Auch die disk scheint per vio zu kommen:

sd0 at scsibus1 targ 0 lun 0: <VirtIO, Block Device, > SCSI3 0/direct fixed
sd0: 30720MB, 512 bytes/sector, 62914560 sectors



Host, falls das von interesse ist:

Code:
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
        index 3 priority 0 llprio 3
        groups: lo
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet 127.0.0.1 netmask 0xff000000
re0: flags=208b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1492
        lladdr d0:50:99:7c:28:cd
        index 1 priority 0 llprio 3
        groups: egress
        media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause)
        status: active
        inet 192.168.100.12 netmask 0xffffff00 broadcast 192.168.100.255
        inet6 sadfdsaf prefixlen 64 scopeid 0x1
        inet6 sdfasfd prefixlen 64 autoconf pltime 1713 vltime 7113
enc0: flags=0<>
        index 2 priority 0 llprio 3
        groups: enc
        status: active
bridge0: flags=41<UP,RUNNING>
        description: switch1-my_switch
        index 4 llprio 3
        groups: bridge
        priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp
        tap0 flags=3<LEARNING,DISCOVER>
                port 6 ifpriority 0 ifcost 0
        re0 flags=3<LEARNING,DISCOVER>
                port 1 ifpriority 0 ifcost 0
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33136
        index 5 priority 0 llprio 3
        groups: pflog
tap0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr fe:e1:ba:d0:fe:17
        description: vm1-if0-s4-webtestserver
        index 6 priority 0 llprio 3
        groups: tap
        status: active
 
Mhm, schau mal da. Das ist jetzt nicht speziell auf vm-bhyve bezogen, könnte aber freebsdism sein. Der Gast bekommt dann ein 'vtnet0'
https://github.com/churchers/vm-bhyve/blob/master/sample-templates/default.conf



https://man.openbsd.org/vio.4

OpenBSD ist da wohl anders, aber dann scheint es bei dir schon zu laufen. ;)

Was mir aber nicht auffiel:
auf dem Host: re0 .... mtu 1492
Die mtu sollte wie bei tap0 auf 1500 sein.

Ich nehme mal an, dass dein re0 eine normale Netzwerkkarte ist und keine Draytek-Karte?

Edit:
Ok, hab gespickt. Ist Asrock. ;)
 
Ja, OpenBSD vmm und FreeBSDs byhve sind da glaube ich sehr unterschiedle virtualisieurngslösungen :)

Ja, ist nen asrock, genaugenommen dieses hier: https://www.asrock.com/mb/Intel/N3150DC-ITX/ - ich nutze das vor allem als sonne art kleines NAS bzw "Homeserver" oder wie man das auch immer nennen möchte, auf dem host läuft im endeffekt neben den vmm noch nen samba und nfs-server.

Das mit der MTU ist etwas merkwürdig ... die ist ja bei der re0 vom host und der vio vom gast 1492 und bei der tap 1500 ... machts sinn da mal drann zu schrauben?
 
Kleines PS:
Mir ist gerade eingefallen das jemand, ich meine der Yamagi, hier mal irgendwie über unterschiedliche firmware-versionen für die realtek-karten geschrieben hat die für verschiedene Probleme sorgen können ... villeicht hat das ja damit etwas zu tun? Wie könnte ich das denn prüfen?
 
Mit entsprechender Karte eignet sich das Ding sicher auch für OPNsense :)

Also mit der Firmware dürfte die MTU mal gurnix zu tun haben. Warum ist die überhaupt auf 1492, wäre die Frage. Bei PPPoE wäre es klar, daher auch die Vermutung auf ne Draytek.
Obwohl ich von OpenBSD keine Ahnung habe, sollte die MTU für ne NWK immer auf 1500 standard stehen.
Ich sage, schraub die einfach mal auf 1500 fest, dann sollte die im Gast auch auf 1500 stehen, was dein Blockierproblem auch lösen sollte.
Kann ja nix kaputtgehen bei, Backup hast du ja sicherlich.
Wenn das klappt, könnte man noch auf Jumboframes (MTU 9000) überlegen, aber das müssen die Komponenten alle mitmachen.

Was du trotzdem unabhängig davon vorher mal machen könntest: neues BIOS flashen, falls vorhanden für das Board.
Ggf. findet sich was in den release-notes oder gar extra firmware für die Realtek, you never know. ;)
 
Das neueste BIOS ist drauf, ich werde das mit der MTU mal testen, danke für den Tipp, wenn was schiefläuft hab ich ja ne Tastatur angeschlossen :)
 
Hi zusammen,

ich verwende OpenBSDs vmm für eine kleine test-vm.

Allerdings ist der Netzwerkdurchsatz zu der vm wesentlich langsamer als der zum host. Die vm ist direkt mit einer Bridge mit dem Netzwerk verbunden.

Hat hier jemand villeicht eine idee ob ich da eine einstellung o.ä. übersehen hab?

Das ist bei mir auch so.

Ich habe eine Intel 82574L (em0) und die mtu ist auf dem host und guest jeweils 1500.

Fuer die Tests habe ich jeweils testweise speedtest-cli installiert.

Meine config ist allerdings nach https://www.openbsd.org/faq/faq16.html#VMMnet - Option 3 mit bridge(4) und vether(4).

Ob in der /etc/vm.conf "memory 1G" oder "memory "4G" eingetragen ist, macht keinen Unterschied. Auch die die CPU-Auslastung ist in der VM beim download und upload im einstelligen Bereich.

Auf dem host habe ich nach mehreren Durchgaengen durchschnittlich 75 Mbit/s down und 70 Mbit/s up.
Auf dem guest habe ich nach mehreren Durchgaengen durchschnittlich 60 Mbit/s down und 60 Mbit/s up.
 
Das werde ich evtl. nach dem versuch mit der mtu mal machen, da muss ich mich aber dann wohl erstmal ins pf und nat wieder einlesen, hab da zuletzt so 2008 mit gebastelt, muss ja auch irgendwie die ports dann von aussen weiterleiten und so :) Hab da generell leider frühstens Morgen Zeit für :(
 
Zurück
Oben