Wie kann ich Daten parallel zu und von Amazon EFS kopieren, um die Leistung meiner EC2-Instance zu maximieren?
Ich muss eine große Anzahl von Dateien kopieren. Ich möchte diese Aufträge parallel auf einem Amazon Elastic File System (Amazon EFS)-Dateisystem auf meiner Amazon Elastic Compute Cloud (Amazon EC2)-Instance ausführen.
Kurzbeschreibung
Verwenden Sie eines der folgenden Tools, um Aufträge parallel auf einem Amazon-EFS-Dateisystem auszuführen:
- GNU parallel: Weitere Informationen finden Sie unter GNU Parallel auf der Website des GNU-Betriebssystems.
- msrsync: Weitere Informationen finden Sie unter msrsync auf der GitHub-Website.
- fpsync: Weitere Informationen finden Sie unter fpsync auf der Ubuntu-Handbücher-Website.
Behebung
GNU parallel
1.Installieren Sie GNU parallel.
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
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
Ubuntu:
$ sudo apt-get install parallel
2.Verwenden Sie rsync, um die Dateien nach Amazon EFS zu kopieren:
$ sudo time find -L /src -type f | parallel rsync -avR {} /dst
oder
$ sudo time find /src -type f | parallel -j 32 cp {} /dst
3.Verwenden Sie die Konsolenanwendung nload, um den Netzwerkverkehr und die Bandbreite zu überwachen.
$ sudo nload -u M
msrsync
msrsync ist ein Python-Wrapper für rsync, der mehrere rsync-Prozesse parallel ausführt.
Hinweis: msrsync ist nur mit Python kompatibel. Führen Sie das msrsync-Skript mit Python 2.7.14 oder einer höheren Version aus.
1.Installieren Sie msrsync.
$ sudo curl -s https://raw.githubusercontent.com/jbd/msrsync/master/msrsync -o /usr/local/bin/msrsync && sudo chmod +x /usr/local/bin/msrsync
2.Verwenden Sie die Option**-p**, um die Anzahl der rsync-Prozesse anzugeben, die Sie parallel ausführen möchten. Ersetzen Sie X durch die Anzahl der rsync-Prozesse. Die Option **-**P zeigt den Fortschritt jedes Auftrags an.
$ sudo time /usr/local/bin/msrsync -P -p X --stats --rsync "-artuv" /src/ /dst/
fpsync
Das Tool fpsync synchronisiert Verzeichnisse parallel mithilfe von fpart und rsync. Es kann mehrere rsync-Prozesse lokal ausführen oder rsync-Übertragungen auf mehreren Knoten (Worker) über SSH starten.
Weitere Informationen zu fpart finden Sie auf der Ubuntu-Handbücher-Website.
1.Aktivieren Sie das EPEL-Repository und installieren Sie das Paket fpart. Amazon Linux und 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
Ubuntu:
$ sudo apt-get install fpart
Hinweis: In Ubuntu ist fpsync Teil des fpart-Pakets.
2.Verwenden Sie fpsync, um die Verzeichnisse /dst und /src zu synchronisieren. Ersetzen Sie X durch die Anzahl der rsync-Prozesse, die Sie parallel ausführen möchten.
$ sudo fpsync -n X /src /dst
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr