Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Blob Storage unterstützt jetzt das NFS 3.0-Protokoll (Network File System). Dieser Artikel enthält Empfehlungen, die Ihnen helfen, die Leistung Ihrer Speicheranforderungen zu optimieren. Weitere Informationen zur NFS 3.0-Unterstützung für Azure Blob Storage finden Sie unter Network File System (NFS) 3.0-Protokollunterstützung für Azure Blob Storage.
Hinzufügen von Clients zum Erhöhen des Durchsatzes
Azure Blob Storage wird linear skaliert, bis der Maximalwert für eingehende und ausgehende Daten für das Speicherkonto erreicht ist. Daher können Ihre Anwendungen einen höheren Durchsatz erzielen, indem sie mehr Clients verwenden. Informationen zum Anzeigen von Ausgangs- und Eingangsgrenzwerten für Speicherkonten finden Sie unter Skalierbarkeits- und Leistungsziele für Standardspeicherkonten.
Das folgende Diagramm zeigt, wie die Bandbreite erhöht wird, wenn Sie weitere Clients hinzufügen. In diesem Diagramm ist ein Client ein virtueller Computer (VM) und mit einem standardmäßigen allgemeinen v2-Speicherkonto.
Das folgende Diagramm zeigt diesen Effekt, wenn er auf ein Premium-Block-Blob-Speicherkonto angewendet wird.
Verwenden von Premium-Block-Blob-Speicherkonten für kleine Anwendungen
Nicht alle Anwendungen können skaliert werden, indem weitere Clients hinzugefügt werden. Für diese Anwendungen bietet das Azure Premium Block Blob Storage-Konto konsistente niedrige Latenz und hohe Transaktionsraten. Das Premium-Blockblob-Speicherkonto kann die maximale Bandbreite mit weniger Threads und Clients erreichen. Beispiel: Mit einem einzelnen Client kann ein Premium-Blockblob-Speicherkonto 2,3-mal so viel Bandbreite erreichen wie dasselbe Setup mit einem Speicherkonto vom Typ „Universell v2“ mit Standardleistung.
Jeder Balken im folgenden Diagramm zeigt den Unterschied bei der erreichten Bandbreite zwischen Premium- und Standardleistungsspeicherkonten. Da sich die Anzahl der Clients erhöht, verringert sich dieser Unterschied.
Verbessern der Read-Ahead-Größe, um den Durchsatz beim Lesen großer Dateien zu erhöhen.
Der read_ahead_kb Kernelparameter stellt die Menge zusätzlicher Daten dar, die nach der Erfüllung einer bestimmten Leseanforderung gelesen werden sollen. Sie können diesen Parameter auf 16 MiB erhöhen, um den Durchsatz großer Dateien zu verbessern.
export AZMNT=/your/container/mountpoint
echo 16384 > /sys/class/bdi/0:$(stat -c "%d" $AZMNT)/read_ahead_kb
Vermeiden häufiger Überschreibungen von Daten
Es dauert länger, bis ein Überschreibvorgang abgeschlossen ist als ein neuer Schreibvorgang. Der Grund dafür ist, dass ein NFS-Überschreibvorgang, insbesondere eine partielle Bearbeitung der Datei an Ort und Stelle, eine Kombination aus mehreren zugrunde liegenden blob-Vorgängen ist: Lese-, Änderungs- und Schreibvorgang. Daher ist eine Anwendung, die häufige direkte Bearbeitungen erfordert, nicht für NFS-aktivierte BLOB-Speicherkonten geeignet.
Bereitstellung des Azure HPC-Caches für latenzempfindliche Anwendungen
Einige Anwendungen erfordern möglicherweise zusätzlich zu hohem Durchsatz eine geringe Latenz. Sie können Azure HPC-Cache bereitstellen, um die Latenz erheblich zu verbessern. Weitere Informationen zur Latenz im BLOB-Speicher.
Erhöhen der Anzahl der TCP-Verbindungen
Sie können die nconnect
Bereitstellungsoption verwenden, um eine höhere aggregierte Lese- und Schreibleistung von einer einzelnen VM zu erhalten, aber nur, wenn Ihr Linux-Kernel Azure nconnect-Unterstützung hat.
nconnect
ist eine clientseitige Linux-Bereitstellungsoption, mit der Sie mehrere TCP-Verbindungen zwischen dem Client und dem Blob-Dienstendpunkt verwenden können. Sie können die nconnect
Option im Bereitstellungsbefehl verwenden, um die Anzahl der tcp-Verbindungen anzugeben, die Sie erstellen möchten (z. B.: mount -t aznfs -o nconnect=16,sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdatain
).
Von Bedeutung
Während die neuesten Linux-Distributionen nconnect vollständig unterstützen, sollten Sie diese Option nur verwenden, wenn Ihr Kernel Über Azure nconnect-Unterstützung verfügt. Die Verwendung der nconnect
-Option ohne Azure nconnect-Unterstützung verringert den Durchsatz, verursacht mehrere Timeouts und führt dazu, dass Befehle wie READDIR
und READIRPLUS
falsch funktionieren.
Azure nconnect-Unterstützung ist mit den meisten der neuesten Ubuntu-Kernel verfügbar, die mit virtuellen Azure-Computern verwendet werden können. Um herauszufinden, ob die Azure nconnect-Unterstützung für Ihren Kernel verfügbar ist, führen Sie den folgenden Befehl aus.
[ -e /sys/module/sunrpc/parameters/enable_azure_nconnect ] && echo "Yes" || echo "No"
Wenn die Azure nconnect-Unterstützung für Ihren Kernel verfügbar ist, wird Yes
in die Konsole gedruckt. Andernfalls wird 'No
in der Konsole ausgegeben.
Wenn die Azure nconnect-Unterstützung verfügbar ist, aktivieren Sie sie, indem Sie den folgenden Befehl ausführen.
echo Y > /sys/module/sunrpc/parameters/enable_azure_nconnect
Weitere Empfehlungen für bewährte Methoden
Verwenden Sie virtuelle Computer mit ausreichender Netzwerkbandbreite.
Verwenden Sie mehrere Einhängepunkte, wenn Ihre Workloads es zulassen.
Verwenden Sie so viele Threads wie möglich.
Verwenden Sie große Blockgrößen.
Stellen Sie Speicheranforderungen von einem Client vor, der sich in derselben Region wie das Speicherkonto befindet. Dies kann die Netzwerklatenz verbessern.
Nächste Schritte
Weitere Informationen zur NFS 3.0-Unterstützung für Azure Blob Storage finden Sie unter Network File System (NFS) 3.0-Protokollunterstützung für Azure Blob Storage.
Um loszulegen, siehe Blob-Speicher einbinden mit dem Network File System (NFS) 3.0-Protokoll.