Gibt es eine Möglichkeit, die Reaktionszeit des Libvirt-Gastnetzwerks zu erhöhen?

Gibt es eine Möglichkeit, die Reaktionszeit des Libvirt-Gastnetzwerks zu erhöhen?

Wir betreiben eine Reihe von Debian Wheezy VMs auf Ubuntu Servern 12.04.4 / Libvirt 0.9.8-2ubuntu17.17

Der Host ist über einen Trunk mit dem Netzwerk verbunden. Anschließend teilt er die VLANs auf und erstellt für jedes davon eine Brücke mit der folgenden Konfiguration:

auto eth4.2 kvmbrtrunk.2
iface eth4.2 inet manual
    up ifconfig eth4.2 up
    down ifconfig eth4.2 down

iface kvmbrtrunk.2 inet manual
    bridge-ports eth4.2
    bridge-stp no
    bridge-fd 0
    bridge-maxwait 0

Die VMs sind wie folgt konfiguriert:

 <interface type='bridge'>
   <mac address='54:52:00:02:10:70'/>
   <source bridge='kvmbrtrunk.2'/>
   <model type='virtio'/>
   <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
 </interface>

Und sie verwenden VirtIO

00:09.0 Ethernet controller: Red Hat, Inc Virtio network device

Protagonisten (alle im selben VLAN):

A: 1st Ubuntu 12.04 desktop
B: 2nd Ubuntu 12.04 desktop
C: 1st VM, 1st host
D: 2nd VM, 1st host
E: 3rd VM, 2nd host

Wenn wir eine Serie von 60 Pings "rtt min/avg/max/mdev" machen:

A -> B = 0.093/0.132/0.158/0.015 ms
A -> C = 0.272/0.434/1.074/0.113 ms
A -> D = 0.294/0.460/0.832/0.091 ms
A -> E = 0.324/0.505/0.831/0.069 ms
C -> D = 0.348/0.607/0.863/0.124 ms
C -> E = 0.541/0.792/0.972/0.101 ms

Diese Ergebnisse deuten darauf hin, dass die libvirtvirtueller Switch/Filterungfügt nicht nur, wie zu erwarten, etwas Latenz hinzu, sondern verdreifacht diese (0,132 gegenüber 0,460)

Frage

 Is there anything that can be done to attenuate this extra latency?

Vielen Dank im Voraus für alle Tipps.

Antwort1

Auf welche Funktionen sind Sie bereit, für diese Latenzreduzierung zu verzichten?

Versuchen Sie zunächst, iptables/ebtables auf den Bridge-Schnittstellen zu deaktivieren. Sie können /proc/sys/net/bridge/bridge-nf-call-iptablesdazu den Wert auf 0 ändern. Der Nachteil dabei ist, dass Sie den Gastverkehr nicht mehr filtern können.

Die „bessere“ Option ist hier der Wechsel zu virtualisierten Netzwerkkarten mit SR-IOV. Dies setzt voraus, dass Ihr Motherboard und Ihr Netzwerkcontroller dies unterstützen. Sie sind außerdem auf 7 Gäste pro Netzwerkkarte beschränkt (bei Gigabit-Ethernet sind 10 GB meiner Meinung nach besser). Dies funktioniert, indem jedem Gast direkter Zugriff auf die Netzwerkhardware gewährt wird. Das Betriebssystem des Hosts ist nicht am Paketfluss beteiligt, die VM kommuniziert nur direkt mit der Netzwerkkarte.

SR-IOV bietet Ihnen die beste Leistung (die CPU-Auslastung war bei unseren Tests bei hohem Netzwerkverkehr um etwa 10 % niedriger) und die geringste Latenz (da weitaus weniger Softwareschichten mit den Paketen interagieren). Ich glaube, Sie können damit VLAN-Tagging konfigurieren, aber die Einrichtung dürfte etwas schwierig sein (SR-IOV ist im Grunde undokumentierte Zauberei, und Sie werden viel an den Einstellungen herumfummeln müssen).

verwandte Informationen