Warum ist die Leistung meines EFS-Dateisystems langsam?
Die Leistung meines Amazon Elastic File System (Amazon EFS) ist sehr langsam. Ich möchte die Ursache ermitteln und das Problem beheben.
Kurzbeschreibung
Die verteilte Multi-Availability Zone-Architektur von Amazon EFS führt zu einem geringen Latenz-Overhead für jeden Dateivorgang. Der Gesamtdurchsatz steigt im Allgemeinen mit steigender durchschnittlicher I/O-Größe, da sich der Overhead bei einer größeren Datenmenge amortisiert.
Die Leistung von Amazon EFS hängt von mehreren Faktoren ab, darunter den folgenden:
- Speicherklasse von EFS.
- Leistungs- und Durchsatzmodi.
- Art der auf EFS ausgeführten Operationen (z. B. metadatenintensive Operationen usw.).
- Eigenschaften der in EFS gespeicherten Daten (wie Größe und Anzahl der Dateien).
- Optionen zum Einhängen.
- Einschränkungen auf Kundenseite.
Lösung
Speicherklasse von EFS
Weitere Informationen finden Sie unter Leistungsübersicht.
Leistungs- und Durchsatzmodi
Leistungsmodi
Amazon EFS bietet zwei Leistungsmodi: Allgemein und Max I/O. Anwendungen können ihre IOPS elastisch bis zu dem mit dem Leistungsmodus verbundenen Limit skalieren.
Informationen zur Bestimmung des zu verwendenden Leistungsmodus finden Sie unter Leistungsmodi.
Durchsatzmodi
Dateibasierte Workloads führen in der Regel für kurze Zeiträume zu einem hohen Durchsatz, für längere Zeiträume jedoch zu einem geringeren Durchsatz. Amazon EFS ist so konzipiert, dass es über einen bestimmten Zeitraum einen hohen Durchsatz erreicht.
Der konfigurierte Durchsatz und die IOPS wirken sich auf die Leistung von Amazon EFS aus.
Es ist eine bewährte Methode, Ihre Workload-Anforderungen zu vergleichen, um Ihnen bei der Auswahl der geeigneten Durchsatz- und Leistungsmodi zu helfen. Wenn Sie den bereitgestellten Durchsatz auswählen, wählen Sie die Werte aus, die Ihren Workload-Anforderungen entsprechen. Informationen zur Analyse des Durchsatzes und der IOPS, die von Ihrem Dateisystem verbraucht werden, finden Sie unter Metrikmathematik mit Amazon EFS verwenden.
Amazon EFS kann mit drei Durchsatzmodi auf bis zu Petabyte an Speichervolumen hochskaliert werden: Bursting, Elastic und Provisioned. Mit dem Bursting-Durchsatz skaliert der Durchsatz auf Amazon EFS mit dem Wachstum Ihres Dateisystems. Mit dem Modus „Bereitgestellter Durchsatz“ können Sie den Durchsatz Ihres Dateisystems sofort bereitstellen, unabhängig von der Menge der gespeicherten Daten. Mit Elastic-Durchsatz können Sie Ihren Durchsatz je nach Workload nach hoch- oder hinunterskalieren. Weitere Informationen zu Durchsatzmodi finden Sie unter Wie funktionieren Amazon EFS-Burst-Credits?
Arten von Vorgängen, die auf der EC2-Instance ausgeführt werden
Metadaten-I/O-Operationen
Die EFS-Leistung leidet in den folgenden Situationen:
- Wenn die Dateigrößen klein sind, weil es sich um ein verteiltes System handelt. Eine verteilte Architektur führt zu einem geringen Latenz-Overhead für jeden Dateivorgang. Aufgrund dieser Latenz pro Vorgang steigt der Gesamtdurchsatz im Allgemeinen mit steigender durchschnittlicher I/O-Größe, da sich der Overhead über mehr Daten amortisiert.
- Die Leistung auf gemeinsam genutzten Dateisystemen leidet, wenn ein Workload oder ein Vorgang viele kleine Dateien seriell generiert. Dadurch erhöht sich der Overhead jedes Vorgangs.
- Metadaten-I/O treten auf, wenn Ihre Anwendung metadatenintensive Operationen wie „ls“, „rm“, „mkdir“, „rmdir“, „lookup“, „getattr“ oder „setattr“ usw. ausführt. Jeder Vorgang, bei dem das System die Adresse eines bestimmten Blocks abrufen muss, wird als metadatenintensiver Workload betrachtet. Weitere Informationen finden Sie im Folgenden:
Messung: So meldet Amazon EFS Dateisystem- und Objektgrößen und Tipps zur Leistung.
Optionen mounten
- Wenn Sie das Dateisystem mit amazon-efs-utils mounten, werden standardmäßig die empfohlenen Mount-Optionen angewendet.
- Wenn Sie nicht standardmäßige Mount-Optionen verwenden, beeinträchtigt dies möglicherweise die Leistung. Zum Beispiel, wenn Sie eine niedrigere rsize und wsize verwenden oder wenn Sie das Attribut-Caching verringern oder deaktivieren. Überprüfen Sie die Ausgabe des Mount-Befehls, um die aktuell vorhandenen Mount-Optionen zu sehen:
Weitere Informationen finden Sie unter Das Dateisystem auf der EC2-Instance mounten und testen.
**NFS-Clientversion **
Das Network File System (NFS), Version 4.1 (NFSv4) -Protokoll, bietet im Vergleich zu NFSv4.0 (weniger als 1.000 Dateien pro Sekunde) eine bessere Leistung für parallele Lesevorgänge kleiner Dateien (mehr als 10.000 Dateien pro Sekunde).
Clientseitige Einschränkungen
**Engpass bei der EC2-Instance **
Wenn Ihre Anwendung, die das Dateisystem verwendet, nicht die erwartete Leistung von EFS erzielt, optimieren Sie die Anwendung. Vergleichen Sie auch den Host oder Service, auf dem Ihre Anwendung gehostet wird, wie Amazon EC2, AWS Lambda usw. Eine Ressourcenknappheit auf der EC2-Instance kann die Fähigkeit Ihrer Anwendung beeinträchtigen, EFS effektiv zu nutzen.
Um zu überprüfen, ob EC2 für Ihre Anwendungsanforderungen nicht ausreichend bereitgestellt wird, überwachen Sie Amazon EC2 CloudWatch-Metriken wie CPU, Amazon Elastic Block Store (Amazon EBS) usw. Durch die Analyse verschiedener Metriken zu Ihrer Anwendungsarchitektur und den Ressourcenanforderungen können Sie entscheiden, ob Sie Ihre Anwendung oder Instanz gemäß Ihren Anforderungen neu konfigurieren sollten.
Verwenden Sie die 4.0+ Linux-Kernelversion
Um eine optimale Leistung zu erzielen und mehrere bekannte NFS-Client-Probleme zu vermeiden, empfiehlt es sich, ein AMI mit einem Linux-Kernel der Version 4.0 oder neuer zu verwenden.
Eine Ausnahme von dieser Regel sind RHEL und CentOS 7.3 und neuer. Der Kernel für diese Betriebssysteme erhielt rückportierte Versionen der Korrekturen und Verbesserungen, die auf NFS v4.1 angewendet wurden. Weitere Informationen finden Sie unter NFS-Support.
Dateien kopieren
Wenn Sie Dateien mit dem Befehl cp kopieren, kann es zu Verzögerungen kommen. Dies liegt daran, dass der Kopierbefehl eine serielle Operation ist, was bedeutet, dass jede Datei einzeln kopiert wird. Wenn die Dateigröße für jede Datei klein ist, ist der Durchsatz zum Senden dieser Datei gering.
Möglicherweise stellen Sie auch eine Latenz fest, wenn Sie Dateien senden. Der verteilte Charakter von EFS bedeutet, dass es auf alle Mountpoints repliziert werden muss, sodass pro Dateivorgang ein Overhead entsteht. Daher ist Latenz ein erwartetes Verhalten.
Empfehlungen
Es hat sich bewährt, parallele I/O-Operationen auszuführen, z. B. mit rsync. Wenn Sie rsync verwenden, beachten Sie, dass cp und rsync in seriellen (Single-Thread-) Operationen statt in parallelen Operationen funktionieren. Dies verlangsamt den Kopiervorgang. Verwenden Sie Tools wie fpart oder NU Parallel. Fpart ist ein Tool, mit dem Sie Dateibäume sortieren und in „Partitionen“ packen können. Fpart enthält ein Shell-Skript namens fpsync, das fpart und rsync umschließt, um mehrere rsync parallel zu starten. Fpsync bietet einen eigenen eingebetteten Scheduler. Diese Methode erledigt Aufgaben schneller als die gängigere serielle Methode.
Weitere Informationen finden Sie unter Amazon EFS – Leistung.
Ähnliche Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr