Colgar solicitudes de Apache usando Ubuntu AMI en el volumen EFS

Colgar solicitudes de Apache usando Ubuntu AMI en el volumen EFS

Noté un comportamiento extraño en la configuración que creé en AWS (región eu-south-1) para evaluar la migración desde nuestro proveedor actual. Quiero implementar instancias EC2 1-n que atiendan solicitudes web a través de Apache, atendiendo archivos almacenados en un volumen EFS común. Ya implementé y probé la parte RDS, el rendimiento de PHP, la integración de ElasticCache, etc. Sin embargo, noté un retraso de 5 segundos en solicitudes esporádicas, un retraso que parecía muy determinista y demasiado cercano al valor de 5 segundos. El volumen de EFS está en modo ráfaga, los créditos son altos (2T) y el porcentaje de uso es realmente bajo, por lo que este no debería ser el problema.

Monté el volumen EFS con las opciones sugeridas, tanto con el "ayudante de montaje EFS" como con el "Cliente NFS", nada cambió. Entonces, intenté reiniciar desde cero, instalando solo el servidor web Apache predeterminado (incluso probé con Nginx con resultados similares) y montando el volumen EFS y realizando pruebas comparativas desde otra instancia EC2 con el siguiente comando:

siege -c 2 -r 20 -b http://35.152.48.17/efs-mount-point/efs-test/logo.png

Con Ubuntu 18.04 y Ubuntu 20.04, la transacción más larga siempre supera los 5 segundos (5,12 - 5,42 segundos). En cambio, con AmiLinux, la transacción más larga es lo suficientemente rápida (0,15 segundos). Curiosamente, si bajo los clientes paralelos de 2 a 1:

siege -c 1 -r 20 -b http://35.152.48.17/efs-mount-point/efs-test/logo.png

la transacción más larga también está bien en Ubuntu, incluso si dejo que "siege" se ejecute durante más repeticiones:

siege -c 1 -r 10000 -b http://35.152.48.17/efs-mount-point/efs-test/logo.png

Sin embargo, si eliminamos la variable EFS en Ubuntu y entregamos los archivos desde el EBS local, la transacción más larga es increíblemente rápida (pocos milisegundos), por lo que el problema surge solo en EFS con Ubuntu (tanto 18.04 como 20.04). ¿Quizás las opciones de montaje sugeridas funcionen para AmiLinux pero les falta algo para las AMI de Ubuntu?

Los pasos de reproducción son tan fáciles que me resultan muy extraños:

  1. elija la AMI de Ubuntu 18.04;
  2. montar el volumen EFS (ya sea con el "ayudante de montaje EFS" o con el cliente NFS);
  3. Instale Apache actualizando solo el directorio de servicio.

¿Cualquier sugerencia?

Respuesta1

Finalmente encontré la solución.

El problema ocurre sólo en los núcleos "5.4.0-1029-aws" y "5.4.0-1032-aws". El problema parece resuelto en las versiones del kernel "5.4.0-1034-aws" y "5.4.0-1035-aws".

Entonces, sólo necesitas actualizar el kernel:

sudo apt-get-update
sudo apt-get install linux-image-5.4.0-1035-aws

Luego, después de reiniciar, debería tener el nuevo kernel en su lugar. Compruébalo con el siguiente comando:

uname -r

Deberías ver este resultado:

5.4.0-1035-aws

Entonces ya no deberías tener latencia.

información relacionada