Amazon EFS との間でデータのコピーを並行して行うことで、EC2 インスタンスのパフォーマンスを最大化する方法を教えてください。

所要時間2分
0

多数のファイルをコピーする必要があります。それらのファイルを、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの Amazon Elastic File System (Amazon EFS) ファイルシステムに並行してコピーしたいです。

解決策

Amazon EFS ファイルシステムでジョブを並行して実行するには、次のいずれかのツールを使用します。

  • GNU parallel (GNU Operating System のウェブサイト)
  • msrsync (GitHub のウェブサイト)
  • fpsync (Ubuntu のウェブサイト)

GNU parallel

次の手順を実行します。

  1. GNU parallel をインストールするには、お使いの OS で次のコマンドを実行します。
    Amazon Linux、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)
    AL2023 用の Extra Packages for Enterprise Linux (EPEL) または EPEL タイプのリポジトリはありません。代わりに、個別のツールに関する GitHub リポジトリページからパッケージをインストールしてください。nloadsysstatgnu-parallel について、GitHub のウェブサイトで参照してください。
    Ubuntu

    sudo apt-get install parallel
  2. 次のコマンドのいずれかを実行し、ファイルを Amazon EFS にコピーします。
    rsync を使用する場合

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

    または、
    rsync を使用しない場合

    sudo time find /src -type f | parallel -j 32 cp {} /dst
  3. 次のコマンドを実行し、nload アプリケーションコンソールでネットワークトラフィックと帯域幅を監視します。

    sudo nload -u M

msrsync

注: msrsync は、Python 以外との互換性がありません。msrsync スクリプトの実行には、Python バージョン 2.7.14 以降を使用します。

次の手順を実行します。

  1. 次のコマンドを実行して 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. 並行して実行する rsync プロセスの数を指定するには、次のコマンドを実行します。-p オプションを含めると、各ジョブの進行状況が表示されます。

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

    注: X は rsync プロセスの数に置き換えます。

fpsync

次の手順を実行します。

  1. EPEL リポジトリを有効にします。

  2. fpart パッケージをインストールするには、お使いの OS で次のコマンドを実行します。
    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
    AL2023 用の EPEL または EPEL タイプのリポジトリはありません。代わりに、個別のツールに関するリポジトリページからパッケージをインストールしてください。nloadsysstatgnu-parallel について、GitHub のウェブサイトで参照してください。
    Ubuntu

    sudo apt-get install fpart

    注: Ubuntu では、fpsyncfpart パッケージに含まれています。

  3. 次のコマンドを実行し、/dst ディレクトリと /src ディレクトリを同期します。

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

    注: X は、並行して実行する Fpsync プロセスの数に置き換えます。

AWS公式更新しました 5ヶ月前
コメントはありません