Optimieren der Leistung und Funktionalität
Nachdem Sie die bewährten Methoden für Größe, Netzwerk und Verwaltung in Ihren Azure Linux-VM-Bereitstellungsplan integriert haben, sollten Sie die Leistung und Funktionalität berücksichtigen. In dieser Lerneinheit wird erläutert, wie Sie Netzwerk- und Speicherressourcen für Azure Linux-VM-Bereitstellungen optimieren.
Optimieren der Netzwerkleistung
Um die Netzwerkleistung für Azure Linux-VMs zu optimieren, können Sie kernelbasierte Netzwerkoptimierungen verwenden und beschleunigte Netzwerke implementieren, falls verfügbar.
Kernelbasierte Netzwerkoptimierungen
Nach September 2017 veröffentlichte Linux-Kernel enthalten Optionen für die Netzwerkoptimierung, die es Azure Linux-VMs ermöglichen, einen höheren Netzwerkdurchsatz zu erzielen. Sie können eine erhebliche Durchsatzleistung erzielen, indem Sie den neuesten Linux-Kernel verwenden.
Bei neuen und vorhandenen virtuellen Azure-Computer kann auch die Installation der aktuellen Version von Linux Integration Services (LIS) vorteilhaft sein. Die Durchsatzoptimierung ist seit Version 4.2 Teil von LIS und nachfolgende Versionen weitere Verbesserungen enthalten.
Beschleunigte Netzwerke
Sie können beschleunigte Netzwerke implementieren, um Latenz zu minimieren, den Durchsatz zu maximieren und die CPU-Auslastung zu verringern. Beschleunigte Netzwerke verwenden die Funktionen der Hosthardware für die Single-Root-E/A-Virtualisierung (SR-IOV) um die Netzwerkleistung zu verbessern.
Ohne beschleunigten Netzwerkbetrieb muss sämtlicher Netzwerkdatenverkehr zur und von der VM den Host und virtuellen Switch passieren. Mit beschleunigtem Netzwerkbetrieb wird Netzwerkdatenverkehr zur Netzwerkkarte (NIC) der VM unter Umgehung des Hosts direkt an die VM weitergeleitet.
Beschleunigtes Netzwerk gilt nur für den virtuellen Computer, auf dem es aktiviert ist. Die besten Ergebnisse erzielen Sie, wenn Sie dieses Feature auf Azure-VMs aktivieren, die mit demselben virtuellen Netzwerk verbunden sind. Für die Kommunikation über virtuelle Netzwerke oder in Hybridszenarien hat dieses Feature insgesamt nur minimale Auswirkungen auf die Wartezeit.
Azure unterstützt den beschleunigten Netzwerkbetrieb für die meisten universellen und computeoptimierten Instanzgrößen, die 2 oder mehr vCPUs haben. VM-Instanzen, die Hyperthreading verwenden, unterstützen einen beschleunigten Netzwerkbetrieb auf Instanzen mit vier oder mehr vCPUs.
Optimieren der Speicherleistung
Jede virtuelle Azure Linux-VM verfügt über mindestens die folgenden zwei virtuellen Datenträger:
Der Betriebssystemdatenträger mit der Bezeichnung
/dev/sda
hat eine maximalen Kapazität von 2 Tebibytes (TiB) für Datenträger im MBR-Format (Master Boot Record) oder 4 TiB für Datenträger im GPT-Format (GUID-Partitionstabelle). Das Image, das Sie zum Bereitstellen der Azure-VM verwenden, bestimmt die Standardgröße.Vermeiden Sie das Speichern von Daten und die Installation von Anwendungen auf dem Betriebssystemdatenträger, da er für einen schnellen Start optimiert ist, anstatt nicht zum Betriebssystem gehörende Workloads auszuführen.
Ein temporärer Datenträger, der als
/dev/sdb
bezeichnet und an/mnt
bereitgestellt wird, bietet temporären Speicher. Die Größe und Leistung des Datenträgers hängen von der VM-Größe ab, und der primäre Zweck besteht darin, eine Auslagerungsdatei zu speichern.Der temporäre Datenträger dient als kurzfristiger Speicher für Daten, die entweder verworfen oder problemlos neu erstellt werden können. Verwenden Sie den temporären Datenträger nicht, um Dateien zu speichern, die über Vorgänge hinweg beibehalten werden müssen, z. B. Größenänderung, erneute Bereitstellung oder Neustarts.
Um die optimale Konfiguration für eine Auslagerungsdatei zu implementieren, verwenden Sie cloud-init für Bilder, die sie unterstützen. Verwenden des Azure-VM-Linux-Agents für Images, die keine Cloudinitialisierung („cloud-init“) unterstützen.
Virtuelle Datenträger
Zum Speichern von Daten und zum Installieren von Anwendungen können Sie virtuelle Datenträger erstellen, an eine Azure-VM anfügen und im Betriebssystem bereitstellen. Sie können je nach Bedarf weitere Datenträger hinzufügen, je nach Speicher- und Eingabe-/Ausgabeanforderungen (IOPS). Beachten Sie dabei Folgendes:
- Die maximale Anzahl der Datenträger, die Sie an eine Azure-VM anfügen können, hängt von der VM-Größe ab.
- Die maximale Anzahl von IOPS, die eine Azure-VM unterstützt, hängt nicht nur vom aggregierten Durchsatz seiner Datenträger, sondern auch vom maximalen IOPS-Durchsatz des virtuellen Computers ab, der durch die VM-Größe bestimmt wird. Der effektive Durchsatz ist die niedrigere der beiden Werte.
Um Speicherplatz für einen virtuellen Azure-Computer bereitzustellen, können Sie Azure-verwaltete Speichervolumes auf Blockebene verwenden. Von Azure verwaltete Datenträger unterstützen die folgenden fünf Datenträgertypen, um bestimmte Kundenszenarien zu behandeln:
- Ultra Disks für E/A-intensive Workloads wie SAP HANA, Datenbanken der obersten Ebene wie SQL und Oracle sowie für andere Workloads mit vielen Transaktionen.
- Premium Solid State Drives (SSDs) v2 für Produktions- und leistungsabhängige Workloads, die konsistent eine niedrige Wartezeit, hohe IOPS und einen hohen Durchsatz erfordern.
- Premium SSDs für Produktionsworkloads und leistungsabhängige Workloads.
- Standard SSDs für Webserver, nur wenig verwendete Unternehmensanwendungen sowie Entwicklungs- oder Testszenarien.
- Standard-Festplattenlaufwerke (HDDs) für Sicherungen und nicht kritische Daten mit seltenen Zugriffen.
Schreibbarrieren für Premium-SSDs
Um die höchsten IOPS auf Premium-SSD-Datenträgern zu erreichen, für die ihre Caches auf ReadOnly
oder None
festgelegt sind, deaktivieren Sie Schreibbarrieren beim Einbinden des Dateisystems in Linux. Sie benötigen keine Barrieren, weil Schreibvorgänge auf Storage Premium-Datenträger bei diesen Cacheeinstellungen dauerhaft sind. Wenn für die Zwischenspeicherung jedoch Read/Write
festgelegt ist, sollten Barrieren aktiviert bleiben, um die Dauerhaftigkeit von Schreibvorgängen sicherzustellen.
- Wenn Sie das reiserFS-Dateisystem verwenden, deaktivieren Sie Barrieren mithilfe der Einbindungsoption
barrier=none
. - Wenn Sie ext3/ext4 verwenden, deaktivieren Sie Barrieren durch die Einbindungsoption
barrier=0
. - Wenn Sie XFS verwenden, deaktivieren Sie Barrieren durch die Einbindungsoption
nobarrier
.
E/A-Scheduling-Algorithmus für Premium SSDs
Der Linux-Kernel bietet zwei Sätze von Datenträger-E/A-Planern zum Neuanordnen von Anforderungen: einen für das ältere Subsystem blk
und einen für das neuere Subsystem blk-mq
. Verwenden Sie für Azure Premium-Speicherdatenträger einen Scheduler, der die Planungsentscheidungen an die zugrunde liegende Virtualisierungsplattform weitergibt.
- Wählen Sie für Linux-Kernel, die das Subsystem
blk
verwenden, den Zeitplannoop
aus. - Wählen Sie für Linux-Kernel, die das Subsystem
blk-mq
verwenden, den Zeitplannone
aus.
Konfigurationen mit mehreren Datenträgern
Wenn Ihre Workloads mehr IOPS benötigen, als ein einzelner Datenträger bieten kann, verwenden Sie eine RAID-Konfiguration (Software Redundant Array of Independent Disks), die mehrere Datenträger kombiniert. Azure bietet Datenträgerresilienz auf Fabric-Ebene des Speichers, sodass Sie sich auf die Leistung konzentrieren können, indem Sie ein RAID 0-Stripeset implementieren.
Alternativ können Sie LVM (Logical Volume Manager) installieren und diesen verwenden, um mehrere virtuelle Datenträger in einem logischen Speichervolume als Single-Stripeset zu kombinieren. In dieser Konfiguration werden Lese- und Schreibvorgänge auf mehrere Datenträger in der Volumegruppe verteilt, ähnlich wie bei RAID 0. Aus Leistungsgründen sollten Sie Ihre logischen Volumes als Stripesetvolumes einrichten, damit Lese- und Schreibvorgänge alle angefügten Datenträger nutzen.