¿Cómo puedo copiar datos desde y a Amazon EFS en paralelo para maximizar el rendimiento en mi instancia EC2?
Tengo un gran número de archivos que copiar o borrar. ¿Cómo puedo ejecutar estos trabajos en paralelo en un sistema de archivos de Amazon Elastic File System (Amazon EFS) en mi instancia de Amazon Elastic Compute Cloud (Amazon EC2)?
Descripción corta
Utilice una de las siguientes herramientas para ejecutar trabajos en paralelo en un sistema de archivos de Amazon EFS:
- GNU Parallel <span style="font-size:11.0pt;line-height:107%; font-family:"Calibri",sans-serif;mso-ascii-theme-font:minor-latin;mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">– Para obtener más información, consulte GNU Parallel en el sitio web del sistema operativo de GNU.
- msrsync <span style="font-size:11.0pt;line-height:107%; font-family:"Calibri",sans-serif;mso-ascii-theme-font:minor-latin;mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">– Para obtener más información, consulte msrsync en el sitio web de GitHub.
- fpsync <span style="font-size:11.0pt;line-height:107%; font-family:"Calibri",sans-serif;mso-ascii-theme-font:minor-latin;mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">– Para obtener más información, consulte fpsyncen el sitio web de los manuales de Ubuntu.
Resolución
GNU Parallel
1. Instale GNU Parallel.
Para 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
Para RHEL 7:
$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo yum install parallel nload -y
Para Amazon Linux 2:
$ sudo amazon-linux-extras install epel $ sudo yum install nload sysstat parallel -y
Para Ubuntu:
$ sudo apt-get install parallel
2. Utilice rsync para copiar los archivos a Amazon EFS.
$ sudo time find -L /src -type f | parallel rsync -avR {} /dst
o bien
$ sudo time find /src -type f | parallel -j 32 cp {} /dst
3. Utilice la aplicación de consola nload para monitorear el tráfico de red y el ancho de banda.
$ sudo nload -u M
msrsync
msrsync es un envoltorio de Python para rsync que ejecuta múltiples procesos de rsync en paralelo.
Nota: msrsync solo es compatible con Python 2. Debe ejecutar el script de msrsync con la versión 2.7.14 de Python o una posterior.
1. Instale 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. Utilice la opción -ppara especificar el número de procesos de rsync que quiera ejecutar en paralelo. Reemplace
X por el número de procesos de rsync. La opción |
---|
P muestra el progreso de cada trabajo. |
$ sudo time /usr/local/bin/msrsync -P -p X --stats --rsync "-artuv" /src/ /dst/
fpsync
La herramienta fpsync sincroniza los directorios en paralelo mediante fpart y rsync. Puede ejecutar varios procesos de rsync a nivel local o lanzar sus transferencias en varios nodos (trabajadores) a través de SSH.
Para más información sobre fpart, consulte fpart en el sitio web de los manuales de Ubuntu.
1. Habilite el repositorio EPEL y, luego, instale el paquete fpart.
Para Amazon Linux y RHEL 6:
$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm $ sudo yum install fpart -y
Para RHEL 7:
$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo yum install fpart -y
Para Amazon Linux 2:
$ sudo amazon-linux-extras install epel $ sudo yum install fpart -y
Para Ubuntu:
$ sudo apt-get install fpart
Nota: En Ubuntu, fpsync es parte del paquete fpart.
2. Use fpsync para sincronizar los directorios /dst y /src. Reemplace X por el número de procesos de rsync que quiera ejecutar en paralelo.
$ sudo fpsync -n X /src /dst
Vídeos relacionados

Contenido relevante
- OFICIAL DE AWSActualizada hace 2 meses
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 2 años