¿Por qué el rendimiento del sistema de archivos de EFS es lento?

Última actualización: 08/06/2022

El rendimiento de Amazon Elastic File System (Amazon EFS) es muy lento. ¿Cuáles son algunos motivos comunes de un rendimiento lento y cómo puedo solucionarlos?

Descripción corta

La arquitectura de varias zonas de disponibilidad distribuidas de Amazon EFS genera una pequeña sobrecarga de latencia para cada operación de archivos. El rendimiento global suele aumentar al hacerlo el tamaño medio de E/S, ya que la sobrecarga se amortiza con un mayor volumen de datos.

El rendimiento de Amazon EFS depende de varios factores, incluidos los siguientes:

  • Clase de almacenamiento de EFS.
  • Modos de rendimiento y velocidad.
  • 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 el número de archivos).
  • Opciones de montaje.
  • Limitaciones del lado del cliente.

Resolución

Clase de almacenamiento de EFS

Para obtener más información, consulte Resumen de rendimiento.

Modos de rendimiento y velocidad

Modos de rendimiento

Amazon EFS ofrece dos modos de rendimiento: de uso general y E/S máxima. Las aplicaciones pueden escalar sus IOPS de forma elástica hasta el límite asociado al modo de rendimiento. Para determinar qué modo de rendimiento utilizar, consulte ¿Cuáles son las diferencias entre los modos de rendimiento de E/S de uso general y máx. en Amazon EFS?

Modos de rendimiento

Las cargas de trabajo basadas en archivos suelen tener picos, lo que genera altos niveles de rendimiento durante períodos cortos, pero reduce los niveles de rendimiento durante períodos más largos. Amazon EFS está diseñado para alcanzar niveles altos de rendimiento durante períodos de tiempo.

El rendimiento configurado y las IOPS afectan al rendimiento de Amazon EFS. Es una práctica recomendada evaluar sus requisitos de carga de trabajo para ayudarle a seleccionar los modos de rendimiento adecuados. Al seleccionar el rendimiento aprovisionado, seleccione los valores que se adapten correctamente a los requisitos de carga de trabajo. En el caso del modo de procesamiento de ráfagas, puede aumentar el tamaño de Amazon EFS mediante archivos ficticios para aumentar el rendimiento de referencia. Para analizar el rendimiento y las IOPS que consume su sistema de archivos, consulte Uso de matemáticas de métricas con Amazon EFS.

Amazon EFS también escala hasta petabytes de volumen de almacenamiento y tiene dos modos de rendimiento: ráfaga y aprovisionamiento. En el modo de ráfaga, cuanto mayor sea el tamaño del sistema de archivos EFS, mayor será la escala de rendimiento. Para el modo aprovisionado, el rendimiento del sistema de archivos se establece en MB/s, independientemente de la cantidad de datos. Para obtener más información sobre los modos de rendimiento, consulte Créditos de ráfagas de Amazon

Tipos de operaciones realizadas en la instancia de EC2

Operaciones de E/S de metadatos

El rendimiento de EFS sufre en las siguientes situaciones:

  • Cuando el tamaño de los archivos es pequeño porque es un sistema distribuido. Esta arquitectura distribuida genera una pequeña latencia en cada operación con archivos. Debido a esta latencia por operación, el rendimiento global suele aumentar al hacerlo el tamaño medio de E/S, ya que la sobrecarga se amortiza con un mayor volumen de 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 con uso intensivo de metadatos. Para obtener más información, consulte lo siguiente:
    Medición: cómo Amazon EFS informa acerca de los tamaños de los objetos y los sistemas de archivos.
    Optimización del rendimiento de archivos pequeños.

Opciones de montaje

  • Si monta el sistema de archivos con amazon-efs-utils, las opciones de montaje recomendadas se aplican de forma predeterminada.
  • El uso de opciones de montaje no predeterminadas puede degradar el rendimiento. Por ejemplo, usar un valor rsize y wsize inferiores o desactivar el almacenamiento en caché de atributos. Puede comprobar la salida del comando mount (montar) para ver las opciones de montaje actualmente disponibles:

Para obtener más información, consulte Monte el sistema de archivos en la instancia EC2 y pruebe.

Comando de ejemplo

>> mount

Salida de ejemplo

fs-EXAMPLE3f75f.efs.us-east-1.amazonaws.com:/ on /home/ec2-user/efs type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=<EXAMPLEIP>,local_lock=none,addr=<EXAMPLEIP>)

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).

Para obtener más información, consulte Configuración de montaje del cliente NFS.

Limitaciones del lado del cliente

Cuellos de botella en la instancia de EC2

Si la aplicación que utiliza el sistema de archivos no está impulsando el rendimiento esperado de EFS, optimice la aplicación. Además, evalúe el host o servicio en el que está alojada la aplicación, como Amazon EC2, AWS Lambda, etc. Una escasez de recursos en la instancia de EC2 podría afectar a la capacidad de la aplicación para utilizar EFS de forma eficaz.

Para comprobar si EC2 tiene un aprovisionamiento insuficiente 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 varias métricas de la arquitectura de la aplicación y los requisitos de recursos le ayuda a determinar si debe volver a configurar la aplicación o la instancia de acuerdo con sus requisitos.

Uso de la versión 4.0 o posterior del kernel de Linux

Para obtener un rendimiento óptimo y evitar una variedad de errores conocidos del cliente NFS, se recomienda utilizar una AMI que tenga una versión 4.0 o posterior del kernel de Linux.

Una excepción a esta regla son RHEL y CentOS 7.3 y posteriores. El núcleo de estos sistemas operativos recibió versiones retroportadas de las correcciones y mejoras aplicadas a NFS v4.1. Para obtener más información, consulte Compatibilidad con NFS.

Copia de archivos

Al copiar archivos con el comando cp, es posible que experimente lentitud. Esto se debe a que el comando copy es una operación en serie, lo que significa que copia cada archivo de uno en uno. Si el tamaño de cada archivo es pequeño, el rendimiento necesario para enviar ese archivo es pequeño.

Es posible que también note latencia al enviar archivos. La naturaleza distribuida de EFS significa que debe replicarse en todos los puntos de montaje, por lo que hay sobrecarga por operación de archivo. Por tanto, la latencia en el envío de archivos es un comportamiento esperado.

Recomendaciones

Se recomienda ejecutar operaciones de E/S paralelas, como el uso de 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 hace que copiar sea más lento. Utilice herramientas como fpart o NU Parallel. Fpart es una herramienta que le ayuda a ordenar árboles de archivos y empaquetarlos en “particiones”. Fpart viene con un script de shell llamado fpsync que engloba fpart y rsync para lanzar varios rsync en paralelo. Fpsync proporciona su propio programador integrado. Al hacerlo, puede completar estas tareas más rápido que con el método de serie más común.

Para obtener más información, consulte Consejos de rendimiento de Amazon EFS.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?