Saltar al contenido

¿Cómo puedo copiar datos hacia y desde Amazon EFS en paralelo para maximizar el rendimiento de mi instancia de EC2?

3 minutos de lectura
0

Tengo una gran cantidad de archivos para copiar. Quiero copiar los archivos en paralelo en un sistema de archivos de Amazon Elastic File System (Amazon EFS) para mi instancia de Amazon Elastic Compute Cloud (Amazon EC2).

Resolución

Usa una de las siguientes herramientas para ejecutar trabajos en paralelo en un sistema de archivos de Amazon EFS:

GNU Parallel

Sigue estos pasos:

  1. Para instalar GNU Parallel, ejecuta los siguientes comandos para el sistema operativo que utilices. 
    Amazon Linux y 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):
    No hay paquetes adicionales para Enterprise Linux (EPEL) ni repositorios de tipo EPEL para AL2023. En su lugar, instala paquetes desde las páginas del repositorio de GitHub para las herramientas individuales. Consulta nload, sysstat y gnu-parallel en el sitio web de GitHub.
    Ubuntu:

    sudo apt-get install parallel
  2. Ejecuta uno de los siguientes comandos para copiar los archivos en Amazon EFS.
    Con rsync:

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

    Alternativa:
    Sin rsync:

    sudo time find /src -type f | parallel -j 32 cp {} /dst
  3. Ejecuta el siguiente comando para supervisar el tráfico de red y el ancho de banda en la consola de la aplicación nload:

    sudo nload -u M

msrsync

Nota: msrsync solo es compatible con Python. Para ejecutar el script msrsync, usa la versión 2.7.14 o posterior de Python.

Sigue estos pasos:

  1. Ejecuta el siguiente comando para instalar 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 el número de procesos rsync que deseas ejecutar en paralelo, ejecuta el siguiente comando. Incluye la opción**-p** para mostrar el progreso de cada trabajo:

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

    Nota: Sustituye X por el número de procesos de rsync.

fpsync

Sigue estos pasos:

  1. Activa el repositorio EPEL.

  2. Para instalar el paquete fpart, ejecuta los siguientes comandos para el sistema operativo que utilices. 
    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:
    No hay ningún repositorio EPEL o tipo EPEL para AL2023. En su lugar, instala los paquetes de las páginas del repositorio para las herramientas individuales. Consulta nload, sysstat y gnu-parallel en el sitio web de GitHub.
    Ubuntu:

    sudo apt-get install fpart

    Nota: En Ubuntu, fpsync forma parte del paquete fpart.

  3. Ejecuta el siguiente comando para sincronizar los directorios /dst y /src:

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

    Nota: Sustituye X por el número de procesos de Fpsync que deseas ejecutar en paralelo.

OFICIAL DE AWSActualizada hace un año