Wie kann ich Daten parallel zu und von Amazon EFS kopieren, um die Leistung meiner EC2-Instance zu maximieren?

Lesedauer: 3 Minute
0

Ich muss eine große Anzahl von Dateien kopieren. Ich möchte die Dateien parallel auf ein Amazon Elastic File System (Amazon EFS)-Dateisystem für meine Amazon Elastic Compute Cloud (Amazon EC2)-Instance kopieren.

Lösung

Verwende eines der folgenden Tools, um Aufträge parallel auf einem Amazon-EFS-Dateisystem auszuführen:

GNU parallel

Führe die folgenden Schritte aus:

  1. Um GNU parallel zu installieren, führe die folgenden Befehle für das von dir verwendete Betriebssystem aus. 
    Amazon Linux und RHEL 6:

    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
    sudo yum install parallel nload -y

    Red Hat Enterprise Linux (RHEL) 7:

    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    sudo yum install parallel nload -y

    Amazon Linux 2:

    sudo amazon-linux-extras install epel
    sudo yum install nload sysstat parallel -y

    Amazon Linux 2023 (AL2023):
    Es gibt keine zusätzlichen Pakete für Enterprise Linux (EPEL) oder ein Repository vom Typ EPEL für AL2023. Installiere stattdessen Pakete von den GitHub-Repository-Seiten für die einzelnen Tools. Siehe nload, sysstat und gnu-parallel auf der GitHub-Website.
    Ubuntu:

    sudo apt-get install parallel
  2. Führe einen der folgenden Befehle aus, um die Dateien nach Amazon EFS zu kopieren.
    Mit rsync:

    sudo time find -L /src -type f | parallel rsync -avR {} /dst

    -oder-
    Ohne rsync:

    sudo time find /src -type f | parallel -j 32 cp {} /dst
  3. Führe den folgenden Befehl aus, um den Netzwerkverkehr und die Bandbreite auf der nload-Anwendungskonsole zu überwachen:

    sudo nload -u M

msrsync

Hinweis: msrsync ist nur mit Python kompatibel. Verwende Python-Version 2.7.14 oder höher, um das msrsync-Skript auszuführen.

Führe die folgenden Schritte aus:

  1. Führe den folgenden Befehl aus, um msrsync zu installieren:

    sudo curl -s https://raw.githubusercontent.com/jbd/msrsync/master/msrsync -o /usr/local/bin/msrsync && sudo chmod +x /usr/local/bin/msrsync
  2. Um die Anzahl der rsync-Prozesse anzugeben, die du parallel ausführen möchtest, führe den folgenden Befehl aus. Füge die Option -p hinzu, um den Fortschritt jedes Jobs anzuzeigen:

    sudo time /usr/local/bin/msrsync -P -p X --stats --rsync "-artuv" /src/ /dst/

    Hinweis: Ersetze X durch die Anzahl der rsync-Prozesse.

fpsync

Führe die folgenden Schritte aus:

  1. Aktiviere das EPEL-Repository.

  2. Um das fpart-Paket zu installieren, führe die folgenden Befehle für das von dir verwendete Betriebssystem aus. 
    RHEL 6:

    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
    sudo yum install fpart -y

    RHEL 7:

    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    sudo yum install fpart -y

    Amazon Linux 2:

    sudo amazon-linux-extras install epel
    sudo yum install fpart -y

    Amazon Linux 2023:
    Es gibt keine EPEL oder ein Repository vom Typ EPEL für AL2023. Installiere stattdessen Pakete von den Repository-Seiten für die einzelnen Tools. Siehe nload, sysstat und gnu-parallel auf der GitHub-Website.
    Ubuntu:

    sudo apt-get install fpart

    Hinweis: In Ubuntu ist fpsync Teil des fpart-Pakets.

  3. Führe den folgenden Befehl aus, um die Verzeichnisse /dst und /src zu synchronisieren:

    sudo fpsync -n X /src /dsthttps://github.com/martinda/gnu-parallel

    Hinweis: Ersetze X durch die Anzahl der fpsync-Prozesse, die du parallel ausführen möchtest.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Monaten