Azure VM Netzwerkperformance beschleunigen

Öfters als erhofft trifft man sie an. Nicht-redundante Infrastruktur-Lösungen, die auf wenigen Virtuellen Maschinen (VM) basieren. In diesem Artikel gehe ich auf kleine tricks ein, wie du die Netzwerkperformance für deine Azure VM in einem solchen Szenario beschleunigen kannst.

Ausgangslage

In diesem Beitrag möchte ich die Möglichkeiten darstellen mit der Annahme, dass eine simple App-Architektur mit zwei VMs besteht. Beispielsweise eine App VM und eine SQL VM im selben Netzwerk. Beide Schichten (App & Database) sind in dieser Ausgangslage als «Single-Server» konfiguriert.

Beschleunigter Netzwerkbetrieb durch Azure

Der erste Tipp ist die Option «Beschleunigter Netzwerkbetrieb». Dieser ist von der vorgängig beschriebenen Ausgangslage unabhängig und trifft somit auch für komplexere und redundante Architekturen zu.

Der beschleunigte Netzwerkbetrieb zeichnet sich damit aus, dass der Host und virtuelle Switch der Azure Hosting Infrastruktur umgangen und somit auch weniger belastet wird.

Source: https://docs.microsoft.com/en-us/azure/virtual-machines/availability-set-overview

Das führt nicht nur dazu, dass die Latenz sich verringert, sondern auch Jitter und die CPU-Auslastung. Das bedeutet also, dass du damit nicht nur die Netzwerkkommunikation beschleunigst, sondern faktisch auch die effektiv zur Verfügung stehenden CPU-Ressourcen positiv beeinträchtigst. Für mehr Informationen beschreibt Microsoft hier den beschleunigten Netzwerkbetrieb ausführlich.

Beim erstellen einer VM kannst du ganz einfach unter «Netzwerk» den Radio-Button «beschleunigter Netzwerkbetrieb» aktivieren.

Physische Position der VM in den Azure Datenzentren

Die Netzwerkgeschwindigkeit zwischen den beiden in der Ausgangslage beschriebenen VMs kann zudem mit der Physischen Position der VM in den Azure Datenzentren beeinflusst werden. Steuern kannst du dies allerdings nur indirekt unter der Verwendung eines «Availability Sets».

Ein «Availability Set» verfügt über Update- & Fault Domains, wovon du dir die Fault Domain zu Nutze machst. Eine Fault Domain definiert eine VM Gruppe, die sowohl Stromquelle als auch Netzwerkkomponenten wie Switches teilen. Einfachheitshalber kannst du eine Fault Domain also als Rack betrachten und die VM sind somit physisch nahe beieinander oder gar auf dem gleichen Host unter Verwendung der geteilten Netzwerkkomponenten. Das verringert die Latenz entsprechend.

Einzelne Azure VM

Wenn ich also meine Ausgangslage mit der einen App VM und der SQL VM zur Hand nehme, so platziere ich die beiden VMs in einem Availability Set und dort in derselben Fault Domain. Die anderen Fault Domains bleiben in diesem Szenario leer.

Redundante Azure VM

Wenn ich die Ausgangslage verändere und beide VM redundant erstellt werden (bspw. 3 App VMs & 3 SQL VMs) so ist darauf zu achten, dass die redundanten VMs nicht in derselben Fault Domain platziert werden. So stellt Microsoft sicher, dass die redundanten VMs sowohl unterschiedliche Netzwerkkomponenten als auch Strom von einer unterschiedlichen Quelle bezieht.

Quellen:

https://docs.microsoft.com/en-us/azure/virtual-machines/availability-set-overview?WT.mc_id=AZ-MVP-5004129

https://github.com/grabery/graber.cloud/blob/main/blog/az%20fault%20domain%20overview.drawio

Hinterlassen Sie einen Kommentar

de_CHGerman