Ir para o conteúdo

Como posso copiar dados de e para o Amazon EFS em paralelo para maximizar o desempenho na minha instância do EC2?

3 minuto de leitura
0

Tenho um grande número de arquivos para copiar. Quero copiar os arquivos em paralelo em um sistema de arquivos do Amazon Elastic File System (Amazon EFS) para minha instância do Amazon Elastic Compute Cloud (Amazon EC2).

Resolução

Use uma das ferramentas a seguir para executar trabalhos em paralelo em um sistema de arquivos do Amazon EFS:

GNU parallel

Conclua as etapas a seguir:

  1. Para instalar o GNU parallel, execute os seguintes comandos para o sistema operacional que você usa. 
    Amazon Linux e 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):
    Não há pacotes extras para Enterprise Linux (EPEL) ou repositório do tipo EPEL para AL2023. Em vez disso, instale pacotes das páginas do repositório do GitHub para as ferramentas individuais. Veja nload, sysstat e gnu-parallel no site do GitHub.
    Ubuntu:

    sudo apt-get install parallel
  2. Execute um dos seguintes comandos para copiar os arquivos para o Amazon EFS.
    Com o rsync:

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

    -or-
    Sem rsync:

    sudo time find /src -type f | parallel -j 32 cp {} /dst
  3. Execute o comando a seguir para monitorar o tráfego de rede e a largura de banda no console da aplicação nload:

    sudo nload -u M

msrsync

Observação: o msrsync é compatível somente com Python. Execute o script msrsync usando Python versão 2.7.14 ou posterior.

Conclua as etapas a seguir:

  1. Execute o seguinte comando para instalar o 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. Para especificar o número de processos rsync que você deseja executar em paralelo, execute o comando a seguir. Inclua a opção \ -p para mostrar o progresso de cada trabalho:

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

    Observação: substitua X pelo número de processos rsync.

fpsync

Conclua as etapas a seguir:

  1. Ative o repositório EPEL.

  2. Para instalar o pacote fpart, execute os seguintes comandos para o sistema operacional que você usa. 
    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:
    Não há repositório EPEL ou do tipo EPEL para o AL2023. Em vez disso, instale pacotes das páginas do repositório para as ferramentas individuais. Veja nload, sysstat e gnu-parallel no site do GitHub.
    Ubuntu:

    sudo apt-get install fpart

    Observação: no Ubuntu, o fpsync faz parte do pacote fpart.

  3. Execute o comando a seguir para sincronizar os diretórios /dst e /src:

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

    Observação: substitua X pelo número de processos Fpsync que você deseja executar em paralelo.

AWS OFICIALAtualizada há um ano