L2TP Gateway auf KVM: Performanceanalyse

Hallo,

ich habe das dumpfe Gefühl, dass in unserer Infrastruktur irgendwo ein Flaschenhals ist.
Die Hardware (Hypervisor 12 Cores, Load unter 2, 10Gb/s Uplink, 200Mbit/s peak, 66GB RAM frei) dümpelt so vor sich hin obwohl die einzelnen Communities sicher noch mehr abrufen könnten. In den Abendstunden schaffe ich auf meinem Knoten (Archer C25) im Speedtest so 20 Mbit/s. Außerhalb der Stoßzeiten mal so 50 Mbit/s, was ja darauf hindeutet, dass es irgendwo klemmt. Der Speedtest direkt auf meiner Upstream Leitung ergibt deutlich höhere Werte, wenn auch nicht die gebuchten 400/20 (vermutlich wegen WiFi Interferenz aus der Nachbarschaft). Auch die direkte Verbindung zwischen Hypervisor oder Gateway-Gast und meinem Rechner (außerhalb des Freifunk Netzes) ergibt höhere Werte. Unsere Upstream Anbindung ist bei weitem nicht ausgelastet.

Wie Analysiert ihr so etwas? Ich habe bisher atop, munin, iperf3 und tcpdump im Einsatz, aber all dies zeigt nur, dass die Hardware sich mehr oder weniger langweilt.

Jetzt hab ich hier mehrfach gelesen, dass man beim Einsatz von KVM offloading abschalten sollte. Ist das noch notwendig und auf welchen Adaptern ist das notwendig? Bei der Hardware Karte des Hosts, bei der Bridge des Hosts wo die VMs dran hängen oder bei den VirtIO Devices auf dem Host bzw. auf dem Gast?

Die hier vorliegende Infrastruktur nutzt ein auf eine Bridge geroutetes v4 /27 an der per VirtIO die einzelnen VMs hängen.
Upstream hängt an einer Mellanox ConnectX-2 Karte mit 10Gbit/s. Diese hängt nicht mit in der Bridge, sondern ist ein eigenes Interface. Conntrack ist aus auf dem Host.
Host OS ist CentOS 7, Kernel 3.10.0-693.11.6.el7
Gast OS ist Fedora 27, Kernel 4.14.13-300.fc27
BATMAN 2017.4

Gibt es noch andere Infos, die zum Debugging hilfreich wären?

Bin Dankbar für eure Erfahrungen und Tipps! Wenn sich hier wertvolle Informationen Sammeln bin ich gerne Bereit hier einen Freifunk-spezifischen Wiki Eintrag zu verfassen um das mal als eine Art Kochbuch zum Nachschlagen zu dokumentieren.

1 Like

Der Speedtest direkt auf meiner Upstream Leitung ergibt deutlich höhere Werte, wenn auch nicht die gebuchten 400/20 (vermutlich wegen WiFi Interferenz aus der Nachbarschaft)

Erste Frage: Wie siehts aus, wenn du das WLAN aus dem Datenweg entfernst?
Zweite Frage: Auf welchen "Abschnitten hast du welche Werte per iperf ermitteln können.

1 Like

Witzig, dass du gerade fragst. Das hab ich gerade mal getestet. Und siehe da, per WLAN zum Archer C25 sinds gerade unter 10 Mbit/s und per LAN zu einem 841 sinds etwa 30 Mbit/s.
Also könnten es durchaus Interferenzen sein.

Scheint als würde die Community tatsächlich nicht mehr als die 200 MBit/s peak abrufen und es ist gar kein Flaschenhals.

Per iperf3 kann ich meine Leitung (wie oben schon geschrieben: 400/20 Unitymedia) sowohl per TCP wie auch UDP, IPv4 wie IPv6 vollständig auslasten. Sowohl zwischen Host und meinem Laptop sowie VM und meinem Laptop. Die Messwerte liegen jeweils bei etwa 395 Mbit/s im Downstream und 18 Mbit/s im Upstream.

Mach doch mal einen iperf vom Gateway zum Knoten.

Kann man dort nachinstallieren, wenn es nicht gerade ein 4 MB-Gerät mit LEDE ist.

Grüße
Matthias