In diesem Artikel wird beschrieben, wie Sie die Netzwerkwartezeit zwischen virtuellen Azure-Computern (VMs) mithilfe der öffentlich verfügbaren Tools Latte für Windows oder SockPerf für Linux testen.
Um die genauesten Ergebnisse zu erzielen, sollten Sie die VM-Netzwerkwartezeit mit einem Tool messen, das für die Aufgabe entwickelt wurde und andere Arten von Wartezeiten ausschließt, z. B. Anwendungswartezeit. Latte und SockPerf stellen die relevantesten Ergebnisse für Netzwerkwartezeit bereit, indem sie sich auf Datenverkehr für TCP (Transmission Control Protocol) und UDP (User Datagram Protocol) konzentrieren. Die meisten Anwendungen verwenden diese Protokolle, und dieser Datenverkehr hat die größte Auswirkung auf die Anwendungsleistung.
Viele andere gängige Testtools für Netzwerkwartezeit, z. B. Ping, messen TCP- oder UDP-Datenverkehr nicht. Tools wie Ping verwenden das Internet Control Message-Protokoll (ICMP), das von Anwendungen nicht verwendet wird. ICMP-Datenverkehr kann anders als Anwendungsdatenverkehr behandelt werden und wirkt sich nicht direkt auf die Anwendungsleistung aus. ICMP-Testergebnisse gelten nicht direkt für Workloads, die TCP und UDP verwenden.
Latte und SockPerf messen nur TCP- oder UDP-Zustellungszeiten für Nutzdaten. Diese Tools verwenden den folgenden Ansatz, um die Netzwerkwartezeit zwischen zwei physischen oder virtuellen Computern zu messen:
Erstellen Sie einen bidirektionalen Kommunikationskanal zwischen den Computern, indem Sie einen als Sender und einen als Empfänger festlegen.
Senden und empfangen Sie Pakete in beiden Richtungen, und messen Sie die Paketumlaufzeit (Round-Trip Time, RTT).
Tipps und bewährte Methoden zum Optimieren der Netzwerkwartezeit
Beachten Sie beim Erstellen der VMs die folgenden Empfehlungen, um VMs für die Netzwerkwartezeit zu optimieren:
Verwenden Sie die neueste Version von Windows oder Linux.
Verwenden Sie die folgenden bewährten Methoden, um die Netzwerkwartezeit zu testen und zu analysieren:
Sobald Sie die Bereitstellung, Konfiguration und Optimierung von Netzwerk-VMs abgeschlossen haben, führen Sie Baseline-Messungen der Netzwerkwartezeit zwischen bereitgestellten VMs durch, um Benchmarks zu erstellen.
Testen Sie die Auswirkungen der Änderung einer der folgenden Komponenten auf die Netzwerkwartezeit:
Betriebssystem oder Netzwerkstapel-Software, einschließlich Konfigurationsänderungen
VM-Bereitstellungsmethoden wie die Bereitstellung in einer Verfügbarkeitszone oder Näherungsplatzierungsgruppe (Proximity Placement Group, PPG)
VM-Eigenschaften, z. B. beschleunigter Netzwerkbetrieb oder Größenänderungen
Konfiguration des virtuellen Netzwerks, z. B. Routing- oder Filteränderungen.
Vergleichen Sie neue Testergebnisse immer mit der Baseline oder mit den letzten Testergebnissen, bevor sie kontrollierte Änderungen vornehmen.
Wiederholen Sie Tests, wenn Sie Änderungen beobachten oder bereitstellen.
Testen von VMs mit Latte oder SockPerf
Verwenden Sie die folgenden Verfahren, um die Netzwerkwartezeit mit Latte für Windows oder SockPerf für Linux zu installieren und zu testen.
Erstellen Sie auf der Empfänger-VM eine allow-Regel in der Windows Defender-Firewall, damit der Latte-Datenverkehr empfangen werden kann. Es ist einfacher, das Programm latte.exe namentlich zuzulassen, als bestimmte eingehende TCP-Ports zuzulassen. Ersetzen Sie im Befehl den <path>-Platzhalter durch den Pfad, in den Sie latte.exe heruntergeladen haben, z. B. c:\tools\.
Führen Sie latte.exe über die Windows-Befehlszeile und nicht über PowerShell aus.
Führen Sie auf der Empfänger-VM den folgenden Befehl aus, und ersetzen Sie dabei die Platzhalter <receiver IP address>, <port> und <iterations> durch Ihre eigenen Werte.
latte -a <receiver IP address>:<port> -i <iterations>
Rund 65 000 Iterationen reichen aus, um repräsentative Ergebnisse zu erhalten.
Jede verfügbare Portnummer ist in Ordnung.
Das folgende Beispiel zeigt den Befehl für eine VM mit der IP-Adresse 10.0.0.4:
latte -a 10.0.0.4:5005 -i 65100
Führen Sie auf der Sender-VM den gleichen Befehl wie auf dem Empfänger aus, jedoch mit dem Zusatz -c, um den Client oder die Sender-VM anzugeben. Ersetzen Sie auch hier die Platzhalter <receiver IP address>, <port> und <iterations> durch Ihre eigenen Werte.
latte -c -a <receiver IP address>:<port> -i <iterations>
Zum Beispiel:
latte -c -a 10.0.0.4:5005 -i 65100
Warten Sie auf die Ergebnisse. Je nach Entfernung der VMs voneinander kann es einige Minuten dauern, bis der Test abgeschlossen ist. Erwägen Sie, mit weniger Iterationen zu beginnen, um den Erfolg zu testen, bevor Sie längere Tests durchführen.
Vorbereiten der VMs
Führen Sie sowohl auf der Sender- aus auch der Empfänger-Linux-VM je nach Ihrer Linux-Distribution die folgenden Befehle aus, um SockPerf vorzubereiten.
Kopieren, Kompilieren und Installieren von SockPerf
Kopieren, kompilieren und installieren Sie SockPerf, indem Sie die folgenden Befehle ausführen:
#Bash - all distros
#From bash command line (assumes Git is installed)
git clone https://github.com/mellanox/sockperf
cd sockperf/
./autogen.sh
./configure --prefix=
#make is slow, may take several minutes
make
#make install is fast
sudo make install
Ausführen von SockPerf auf den virtuellen Computern
Nachdem die SockPerf-Installation abgeschlossen ist, starten Sie SockPerf auf der Empfänger-VM. Jede verfügbare Portnummer ist in Ordnung. Im folgenden Beispiel wird Port 12345 verwendet. Ersetzen Sie die IP-Beispieladresse 10.0.0.4 durch die IP-Adresse Ihrer Empfänger-VM.
#Server/Receiver for IP 10.0.0.4:
sudo sockperf sr --tcp -i 10.0.0.4 -p 12345
Nachdem der Empfänger nun lauscht, führen Sie den folgenden Befehl auf dem Sender oder Clientcomputer aus, um Pakete an den Empfänger über den lauschenden Port zu senden, in diesem Fall 12345.
#Client/Sender for IP 10.0.0.4:
sockperf ping-pong -i 10.0.0.4 --tcp -m 350 -t 101 -p 12345 --full-rtt
Die -t-Option legt die Testzeit in Sekunden fest. Rund 100 Sekunden reichen aus, um repräsentative Ergebnisse zu erhalten.
Das -m gibt die Nachrichtengröße in Bytes an. Eine Nachrichtengröße von 350 Byte ist typisch für ein durchschnittliches Paket. Sie können die Größe anpassen, um die Workloads Ihrer VM genauer darzustellen.
Warten Sie auf die Ergebnisse. Abhängig von der Entfernung der VMs zueinander variiert die Anzahl der Iterationen. Um die erfolgreiche Durchführung zu testen, bevor Sie längere Tests durchführen, sollten Sie mit kürzeren Tests von etwa fünf Sekunden beginnen.
Azure HPC ist eine zweckorientierte Cloudfunktion für HPC- und KI-Workloads, die modernste Prozessoren und InfiniBand-Verbindungen der HPC-Klasse verwendet, um die beste Anwendungsleistung, Skalierbarkeit und den besten Nutzen zu erzielen. Mit Azure HPC können Benutzer Innovationen, Produktivität und geschäftliche Agilität mithilfe einer hochverfügbaren Palette von HPC- und KI-Technologien nutzen, die dynamisch zugeordnet werden können, wenn sich Ihre geschäftlichen und technischen Anforderungen ändern. Bei
Zeigen Sie Ihre Kenntnisse zu Entwurf, Implementierung und Wartung der Azure-Netzwerkinfrastruktur, zum Lastenausgleich für Datenverkehr, zum Netzwerkrouting u. v. m.