Wie verbessere ich die Leistung meines FSx for Lustre-Dateisystems?

Lesedauer: 4 Minute
0

Ich möchte die Leistung meines Amazon FSx für Lustre-Dateisystems verbessern.

Lösung

Erhöhen der Größe des Dateisystems

Der von einem FSx für Lustre-Dateisystem unterstützte Durchsatz ist proportional zu seiner Speicherkapazität.

Durchsatzkapazität = Speicherkapazität (TiB) * Speicherdurchsatz pro Einheit (Mbit/s)

Ein persistentes Dateisystem mit 4,8 TiB Speicherkapazität und 50 Mbit/s pro TiB Durchsatz pro Speichereinheit bietet beispielsweise:

  • Ein aggregierter Basis-Datenträgerdurchsatz von 240 Mbit/s
  • Ein Burst-Disk-Durchsatz von 1,152 Gbit/s

Wenn Objektspeicherziele (OSTs) fast voll sind, kann es sein, dass das Dateisystem beim Lesen oder Schreiben im Dateisystem hängen oder stecken bleibt. Erhöhen Sie in diesem Fall die Größe des Dateisystems.

Problembehebung mit unausgeglichenen OSTs

FSx für Lustre ist ein verteiltes Dateisystem, das aus OSTs besteht, die Daten im Dateisystem speichern. Um die Anzahl der OSTs und die Größe der einzelnen OSTs anzuzeigen, führen Sie den folgenden Befehl auf dem Client aus:

$lfs df -h

Wenn es sich um ein unausgeglichenes Dateisystem handelt, sieht die Ausgabe etwa wie folgt aus:

UUID                 bytes   Used  Available Use%  Mounted on  
testfs-MDT0000_UUID  4.4G   214.5M   3.9G     4%   /mnt/testfs[MDT:0]  
testfs-MDT0001_UUID  4.4G   144.5M   4.0G     4%   /mnt/testfs[MDT:1]  
testfs-OST0000_UUID  2.0T   751.3G   1.1G    37%   /mnt/testfs[OST:0]  
testfs-OST0001_UUID  2.0T   755.3G   1.1G    37%   /mnt/testfs[OST:1]  
testfs-OST0002_UUID  2.0T     1.9T  55.1M    99%   /mnt/testfs[OST:2] <-  
testfs-OST0003_UUID  2.0T   751.3G   1.1G    37%   /mnt/testfs[OST:3]  
testfs-OST0004_UUID  2.0T   747.3G   1.1G    37%   /mnt/testfs[OST:4]  
testfs-OST0005_UUID  2.0T   743.3G   1.1G    36%   /mnt/testfs[OST:5]

filesystem summary: 11.8T     5.5T   5.7T    46%  /mnt/lustre

Der verfügbare Speicherplatz eines einzelnen OST kann relativ kleiner oder größer sein als der Rest. Dies geschieht aufgrund einer der folgenden Bedingungen:

  • Es werden neue OSTs hinzugefügt und die Optimierung ist noch nicht abgeschlossen.
  • Bei der standardmäßigen Stripe-Anzahl von eins wurde die Datei auf einem einzigen OST platziert.

Wenn mehrere OSTs voll sind, erhöhen Sie die Speicherkapazität Ihres Dateisystems. Wenn nur ein paar OSTs voll sind, sollten Sie die OSTs neu ausbalancieren.

Optimieren Sie außerdem die Striping-Konfiguration, um Speicherplatz freizugeben und die Leistung zu verbessern. Sie können eine PFL-Konfiguration (Progressive File Layout) einrichten, die es ermöglicht, das Layout einer Datei mit der Größe zu ändern. Um beispielsweise eine Layout-Konfiguration anzugeben, verwenden Sie den Befehl lfs setstripe mit den Optionen -E, um Layout-Komponenten für Dateien unterschiedlicher Größe anzugeben:

lfs setstripe -E 100M -c 1 -E 10G -c 8 -E 100G -c 16 -E -1 -c 32 /mountname/directory

Hinweis:

  • Bei kleineren Dateien hilft PFL möglicherweise nicht.
  • Sie können den Befehl lfs setstripe verwenden, um die Stripe-Konfiguration nur für neue Dateien und Ordner festzulegen. Sie müssen den Befehl lfs migrate verwenden, um die vorhandenen Dateien oder Ordner zu entfernen.
  • Sequentielle Lesevorgänge profitieren möglicherweise nicht vom Striping.

Verwenden von größeren Instances für rechenintensive Workloads

Wählen Sie für intensive Workloads Instances mit größerer Speicher- oder Rechenkapazität.

Im Folgenden finden Sie einige bewährte Methoden zur Optimierung:

1.Optimieren Sie große Client-Instances für optimale Leistung:

Wenden Sie für Client-Instance-Typen mit einem Speicher von mehr als 64 GB die folgende Optimierung an:

lctl set_param ldlm.namespaces.*.lru_max_age=600000

Wenden Sie für Client-Instance-Typen mit mehr als 64 CPU-Kernen die folgende Optimierung an:

echo "options ptlrpc ptlrpcd_per_cpt_max=32" >> /etc/modprobe.d/modprobe.conf  
echo "options ksocklnd credits=2560" >> /etc/modprobe.d/modprobe.conf  
         
# reload all kernel modules to apply the above two settings  
sudo reboot

2.Nachdem der Client gemountet wurde, wenden Sie die folgende Optimierung an:

sudo lctl set_param osc.*OST*.max_rpcs_in_flight=32  
sudo lctl set_param mdc.*.max_rpcs_in_flight=64  
sudo lctl set_param mdc.*.max_mod_rpcs_in_flight=50

Hinweis:

Der Befehl lctl set_param bleibt nach einem Neustart nicht bestehen. Sie können diese Parameter nicht dauerhaft von der Client-Seite aus festlegen. Daher empfiehlt es sich, einen Boot-Cron-Job zu implementieren, um die Konfiguration mit den empfohlenen Optimierungen festzulegen.

Ähnliche Informationen

Aggregierter Basis- und Burst-Durchsatz

Tipps zur Leistung

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr