Anmerkung
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.
In diesem Artikel werden die Eigenschaften beschrieben, die Sie optimieren können, um eine bessere Leistung zu erzielen, während PowerShell zum Arbeiten mit Data Lake Storage Gen1 verwendet wird.
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen finden Sie unter Installieren von Azure PowerShell für die ersten Schritte. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zu Az.
Leistungsbezogene Eigenschaften
| Eigentum | Standard | BESCHREIBUNG |
|---|---|---|
| Anzahl der Threads pro Datei | 10 | Mit diesem Parameter können Sie die Anzahl der parallelen Threads zum Hochladen oder Herunterladen jeder Datei auswählen. Diese Zahl stellt die max. Threads dar, die pro Datei zugeordnet werden können. Je nach Szenario erhalten Sie jedoch möglicherweise weniger Threads (wenn Sie z. B. eine 1-KB-Datei hochladen, erhalten Sie auch dann einen Thread, wenn Sie 20 Threads anfordern). |
| GleichzeitigeDateiAnzahl | 10 | Dieser Parameter dient speziell zum Hochladen oder Herunterladen von Ordnern. Dieser Parameter bestimmt die Anzahl der gleichzeitigen Dateien, die hochgeladen oder heruntergeladen werden können. Diese Zahl stellt die maximale Anzahl gleichzeitiger Dateien dar, die gleichzeitig hochgeladen oder heruntergeladen werden können. Je nach Szenario erhalten Sie jedoch möglicherweise weniger Parallelität (z. B. wenn Sie zwei Dateien hochladen, erhalten Sie zwei gleichzeitige Dateien uploads, auch wenn Sie nach 15 fragen). |
Beispiel:
Mit diesem Befehl werden Dateien von Data Lake Storage Gen1 mit 20 Threads pro Datei und 100 gleichzeitigen Dateien auf das lokale Laufwerk des Benutzers heruntergeladen.
Export-AzDataLakeStoreItem -AccountName "Data Lake Storage Gen1 account name" `
-PerFileThreadCount 20 `
-ConcurrentFileCount 100 `
-Path /Powershell/100GB `
-Destination C:\Performance\ `
-Force `
-Recurse
Wie man Eigenschaftswerte ermittelt
Die nächste Frage, die Sie möglicherweise haben, besteht darin, zu bestimmen, welcher Wert für die leistungsbezogenen Eigenschaften bereitgestellt werden soll. Hier ist einige Anleitung, die Sie verwenden können.
Schritt 1: Bestimmen Sie die Gesamtthreadanzahl – Beginnen Sie mit der Berechnung der gesamt zu verwendenden Threadanzahl. Als allgemeine Richtlinie sollten Sie für jeden physischen Kern sechs Threads verwenden.
Total thread count = total physical cores * 6Beispiel:
Angenommen, Sie führen die PowerShell-Befehle von einer D14-VM mit 16 Kernen aus.
Total thread count = 16 cores * 6 = 96 threadsSchritt 2: PerFileThreadCount berechnen - Wir berechnen unsere PerFileThreadCount basierend auf der Größe der Dateien. Für Dateien, die kleiner als 2,5 GB sind, muss dieser Parameter nicht geändert werden, da der Standardwert von 10 ausreicht. Für Dateien, die größer als 2,5 GB sind, sollten Sie 10 Threads als Basis für die ersten 2,5 GB verwenden und für jede zusätzliche Dateigröße von 256 MB 1 Thread hinzufügen. Wenn Sie einen Ordner mit einer großen Palette von Dateigrößen kopieren, sollten Sie sie in ähnliche Dateigrößen gruppieren. Wenn Sie unterschiedliche Dateigrößen haben, kann dies zu einer nicht optimalen Leistung führen. Wenn dies nicht möglich ist, ähnliche Dateigrößen zu gruppieren, sollten Sie PerFileThreadCount basierend auf der größten Dateigröße festlegen.
PerFileThreadCount = 10 threads for the first 2.5 GB + 1 thread for each additional 256 MB increase in file sizeBeispiel:
Angenommen, Sie haben 100 Dateien zwischen 1 GB und 10 GB, wir verwenden die 10 GB als größte Dateigröße für Formeln, die wie folgt gelesen würde.
PerFileThreadCount = 10 + ((10 GB - 2.5 GB) / 256 MB) = 40 threadsSchritt 3: Berechne ConcurrentFileCount – Verwenden Sie die Gesamtanzahl der Threads und die Anzahl der Threads pro Datei, um die ConcurrentFileCount basierend auf der folgenden Gleichung zu berechnen:
Total thread count = PerFileThreadCount * ConcurrentFileCountBeispiel:
Basierend auf den verwendeten Beispielwerten
96 = 40 * ConcurrentFileCountAlso, ConcurrentFileCount ist 2.4, die wir auf 2 runden können.
Weitere Optimierung
Möglicherweise benötigen Sie eine weitere Optimierung, da es eine Reihe von Dateigrößen gibt, mit denen Sie arbeiten können. Die vorangehende Berechnung funktioniert gut, wenn alle oder die meisten Dateien größer und näher am Bereich von 10 GB liegen. Wenn es stattdessen viele verschiedene Dateigrößen gibt, bei denen viele Dateien kleiner sind, können Sie PerFileThreadCount reduzieren. Durch die Reduzierung des `PerFileThreadCount`-Werts können wir `ConcurrentFileCount` erhöhen. Wenn wir also davon ausgehen, dass die meisten unserer Dateien im Bereich von 5 GB kleiner sind, können wir unsere Berechnung wiederholen:
PerFileThreadCount = 10 + ((5 GB - 2.5 GB) / 256 MB) = 20
Also, ConcurrentFileCount wird 96/20, was 4.8 ist, abgerundet auf 4.
Sie können diese Einstellungen weiterhin optimieren, indem Sie den PerFileThreadCount je nach Verteilung Ihrer Dateigrößen nach oben und unten ändern.
Einschränkung
Anzahl der Dateien ist kleiner als "ConcurrentFileCount": Wenn die Anzahl der Dateien, die Sie hochladen, kleiner ist als das von Ihnen berechnete ConcurrentFileCount, sollten Sie ConcurrentFileCount auf die Anzahl der Dateien reduzieren. Sie können alle verbleibenden Threads verwenden, um PerFileThreadCount zu erhöhen.
Zu viele Threads: Wenn Sie die Threadanzahl zu viel erhöhen, ohne die Clustergröße zu erhöhen, führen Sie das Risiko einer beeinträchtigten Leistung aus. Bei der Kontextumschaltung auf der CPU kann es Zustrittsprobleme geben.
Unzureichende Parallelität: Wenn die Parallelität nicht ausreicht, ist ihr Cluster möglicherweise zu klein. Sie können die Anzahl der Knoten in Ihrem Cluster erhöhen, wodurch Sie mehr Parallelität erhalten.
Drosselungsfehler: Möglicherweise werden diese angezeigt, wenn die Gleichzeitigkeit zu hoch ist. Wenn Drosselungsfehler auftreten, sollten Sie entweder die Parallelität reduzieren oder uns kontaktieren.