¿Por qué es lento el rendimiento de mi sistema de archivos EFS?
El rendimiento de mi Amazon Elastic File System (Amazon EFS) es muy lento. Quiero identificar la causa y solucionar el problema.
Breve descripción
La arquitectura distribuida de zonas de disponibilidad múltiple de Amazon EFS genera una pequeña sobrecarga de latencia en cada operación de archivo. El rendimiento general generalmente aumenta a medida que aumenta el tamaño promedio de E/S porque la sobrecarga se amortiza con una cantidad mayor de datos.
El rendimiento de Amazon EFS depende de varios factores, incluidos los siguientes:
- Clase de almacenamiento de EFS.
- Modos de desempeño y rendimiento.
- Tipo de operaciones realizadas en EFS (por ejemplo, uso intensivo de metadatos, etc.).
- Propiedades de los datos almacenados en EFS (como el tamaño y la cantidad de archivos).
- Opciones de montaje.
- Limitaciones por parte del cliente.
Resolución
Clase de almacenamiento de EFS
Para obtener más información, consulte Resumen de rendimiento.
Modos de desempeño y rendimiento
Modos de desempeño
Amazon EFS ofrece dos modos de desempeño: General Purpose y Max I/O. Las aplicaciones pueden escalar sus IOPS de forma elástica hasta el límite asociado con el modo de desempeño.
Para determinar qué modo de rendimiento usar, consulte Modos de desempeño.
Modos de rendimiento
Las cargas de trabajo basadas en archivos suelen generar altos niveles de rendimiento durante períodos cortos, pero reducen los niveles de rendimiento durante períodos más prolongados. Amazon EFS está diseñado para alcanzar niveles de rendimiento elevados durante períodos de tiempo.
El rendimiento y las IOPS configurados afectan al rendimiento de Amazon EFS.
Se recomienda comparar los requisitos de carga de trabajo para ayudarle a seleccionar el rendimiento y los modos de rendimiento adecuados. Al seleccionar el rendimiento aprovisionado, seleccione los valores que se adapten a sus requisitos de carga de trabajo. Para analizar el rendimiento y las IOPS que consume su sistema de archivos, consulte Uso de la matemática métrica con Amazon EFS.
Amazon EFS puede escalar hasta petabytes de volumen de almacenamiento con tres modos de rendimiento: rápido, elástico y aprovisionado. Con el modo de rendimiento por ráfaga, el rendimiento de Amazon EFS escala a medida que el sistema de archivos crece. Si se usa el rendimiento aprovisionado, puede aprovisionar al instante el rendimiento de su sistema de archivos independientemente de la cantidad de datos almacenados. Con el rendimiento elástico, puede aumentar o reducir su rendimiento en función de su carga de trabajo. Para obtener más información sobre los modos de rendimiento, consulte ¿Cómo funcionan los créditos de ráfagas de Amazon EFS?
Tipos de operaciones realizadas en la instancia EC2
Operaciones de E/S de metadatos
El rendimiento de EFS se ve afectado en las siguientes situaciones:
- Cuando el tamaño de los archivos es pequeño porque se trata de un sistema distribuido. La arquitectura distribuida produce una pequeña sobrecarga de latencia para cada operación de archivos. Debido a esta latencia por operación, el rendimiento general generalmente aumenta a medida que aumenta el tamaño promedio de E/S porque la sobrecarga se amortiza con más datos.
- El rendimiento de los sistemas de archivos compartidos se ve afectado si una carga de trabajo u operación genera muchos archivos pequeños en serie. Esto hace que aumente la sobrecarga de cada operación.
- La E/S de metadatos se produce si la aplicación realiza operaciones con uso intensivo de metadatos, como «ls», «rm», «mkdir», «rmdir», «lookup», «getattr» o «setattr», etc. Cualquier operación que requiera que el sistema busque la dirección de un bloque específico se considera una carga de trabajo intensiva en metadatos. Para obtener más información, consulte:
Medición: Cómo informa Amazon EFS sobre los tamaños de objetos y sistemas de archivos y Consejos de rendimiento.
Opciones de montaje
- Si monta el sistema de archivos con amazon-efs-utils, las opciones de montaje recomendadas se aplicarán de forma predeterminada.
- Si utiliza opciones de montaje no predeterminadas, es posible que se degrade el rendimiento. Por ejemplo, si utiliza rsize y wsize más bajos o si reduce o desactiva el almacenamiento en el Caché de atributos. Compruebe el resultado del comando mount para ver las opciones de montaje actualmente disponibles:
Para obtener más información, consulte Montar el sistema de archivos en la instancia EC2 y probarlo.
Versión de cliente NFS
El protocolo Network File System (NFS), versión 4.1 (NFSv4), proporciona un mejor rendimiento para las operaciones paralelas de lectura de archivos pequeños (más de 10 000 archivos por segundo) en comparación con NFSv4.0 (menos de 1000 archivos por segundo).
Limitaciones por parte del cliente
Cuello de botella en la instancia EC2
Si la aplicación que usa el sistema de archivos no genera el rendimiento esperado de EFS, optimice la aplicación. Además, compare el host o el servicio en el que está alojada su aplicación, como Amazon EC2, AWS Lambda, etc. Una escasez de recursos en la instancia EC2 podría afectar a la capacidad de la aplicación para usar EFS de manera eficaz.
Para comprobar si EC2 está subaprovisionado para los requisitos de su aplicación, supervise las métricas de Amazon EC2 CloudWatch, como la CPU, Amazon Elastic Block Store (Amazon EBS), etc. El análisis de diversas métricas de la arquitectura de la aplicación y los requisitos de recursos le ayudan a determinar si debe reconfigurar la aplicación o la instancia de acuerdo con sus requisitos.
Utilice la versión 4.0+ del kernel de Linux
Para obtener un rendimiento óptimo y evitar varios problemas conocidos del cliente NFS, se recomienda utilizar una AMI con una versión 4.0 o posterior del kernel de Linux.
Una excepción a esta regla son RHEL y CentOS 7.3 y sus versiones posteriores. El núcleo de estos sistemas operativos recibió versiones anteriores de las correcciones y mejoras aplicadas a NFS v4.1. Para obtener más información, consulte Compatibilidad con NFS.
Copiar archivos
Al copiar archivos con el comando cp, es posible que experimente una cierta lentitud. Esto se debe a que el comando de copia es una operación en serie, lo que significa que se copia cada archivo de uno en uno. Si el tamaño de cada archivo es pequeño, el rendimiento para enviar ese archivo es pequeño.
También es posible que note latencia al enviar los archivos. La naturaleza distribuida de EFS significa que debe replicarse en todos los puntos de montaje, por lo que hay una sobrecarga por operación de archivo. Por lo tanto, la latencia es el comportamiento esperado.
Recomendaciones
Se recomienda ejecutar operaciones de E/S en paralelo, como con rsync. Si usa rsync, tenga en cuenta que cp y rsync funcionan en operaciones en serie (subproceso único) en lugar de en operaciones paralelas. Esto ralentiza el proceso de copia. Use herramientas como fpart o NU Parallel. Fpart es una herramienta que te ayuda a ordenar árboles de archivos y empaquetarlos en «particiones». Fpart viene con un script de shell llamado fpsync que envuelve fpart y rsync para lanzar varios rsync en paralelo. Fpsync proporciona su propio planificador integrado. Este método completa las tareas más rápido que el método en serie más común.
Para obtener más información, consulte los Precios de Amazon EFS.
Información relacionada
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 meses
- ¿Cómo convierto mi sistema de archivos EFS regional existente a un sistema de archivos EFS One Zone?OFICIAL DE AWSActualizada hace 6 meses
- OFICIAL DE AWSActualizada hace 2 años
- ¿Cómo puedo usar las políticas del sistema para controlar el acceso a mi sistema de archivos de EFS?OFICIAL DE AWSActualizada hace 6 meses