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 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
AWS OFFICIAL
AWS OFFICIALAktualisiert vor 10 Monaten