El sitio de la nube es lento

Este artículo proporciona recomendaciones sobre cómo mejorar el rendimiento de su sitio de Adobe Commerce en la infraestructura en la nube bajo cargas de tráfico pesadas y cómo reducir esta carga.

Versiones y ediciones afectadas

  • Adobe Commerce en la infraestructura en la nube, todas las versiones

Problema

Pasos a seguir

  1. Visite su tienda de Adobe Commerce.
  2. Examine una página de categoría.
  3. Añadir un producto al carro de compras.

Resultado esperado

El sitio es adaptable y añadir un producto al carro de compras es rápido.

Resultado real

El sitio es lento o las páginas de categoría son rápidas, pero la página del carro de compras es lenta.

Pasos y soluciones de depuración

Realice los siguientes pasos para rastrear el motivo del rendimiento lento y solucionarlo. Puede cambiar el primer y el segundo paso, pero continuar bloqueando direcciones IP solo si la optimización de la configuración de la caché no ayuda.

  1. Compruebe la tasa de visitas en caché para las páginas con alto tráfico y reduzca la cantidad de datos actualizados.
  2. Compruebe la tasa general de visitas de caché del sitio y verifique la configuración general de caché/Fastly.
  3. Identifique los clientes web que provocan la carga alta del servidor y bloquee las IP que provocan la carga alta.

Los siguientes párrafos proporcionan más detalles para cada paso.

Paso 1: Compruebe la tasa de visitas en caché para las páginas con alto tráfico

El primer paso para corregir un sitio atascado por tráfico intenso es garantizar que las páginas con el tráfico más intenso, como la página principal de la tienda y las páginas de categoría de nivel superior, se almacenen en caché correctamente.

Puede averiguar las tasas de aciertos de caché para estas páginas revisando los encabezados HTTP X-Cache mediante cURL, tal como se describe en Comprobación de caché mediante cURL en la documentación de Fastly. O compruebe los mismos encabezados con la pestaña de red de la barra de herramientas del desarrollador de su explorador web favorito.

Fastly suele respetar los encabezados de respuesta procedentes de la aplicación; sin embargo, si todos los encabezados están configurados en "no almacenar en caché" y para que la página "caduque en el pasado", Fastly no puede almacenar en caché la página.

WARNING
Tenga en cuenta que cambia rápidamente los encabezados de respuesta, por lo que al comprobar la URL principal con cURL o el explorador web no se muestran necesariamente los encabezados que emite la aplicación. Es común que Fastly responda a exploradores web con encabezados "sin caché", pero que la propia aplicación web permita el almacenamiento en caché y que Fastly almacene en caché correctamente el elemento. Por lo tanto, la información de los encabezados "cache-control" y "pragma" no será útil en este caso.

Solución de problemas para páginas con mucho tráfico

Si la página de índice tiene una tasa de visitas baja, puede corregirla reduciendo la cantidad de datos muy actualizados presentes en esa página.

Paso 2: Compruebe la tasa global de visitas de caché del sitio

Para comprobar la tasa de aciertos de caché general:

  1. Obtenga credenciales de Fastly para su Adobe Commerce en el entorno de infraestructura en la nube.

  2. Ejecute el siguiente comando cURL de Linux/macOS para comprobar la tasa de visitas del sitio durante los últimos 30 minutos, reemplazando y con los valores de las credenciales de Fastly:

    curl -H "Fastly-Key: " https://api.fastly.com/stats/service//field/hit_ratio?by=minute | json_pp

    También puede comprobar las tasas de visitas históricas del último día o mes cambiando la opción de consulta de intervalo de tiempo de ?by=minute a ?by=hour o ?by=day. Para obtener más información sobre cómo obtener estadísticas de caché de Fastly, consulte Opciones de consulta en la documentación de Fastly.

    La opción | json_pp imprime correctamente el resultado de la respuesta JSON con la utilidad json_pp. Si obtiene un error_'json_pp not found'_, instale la utilidad json_pp o use otra herramienta de línea de comandos para la impresión con sangría de JSON. Como alternativa, elimine el parámetro | json_pp y ejecute de nuevo el comando. El resultado de la respuesta JSON no tiene formato, pero puede ejecutarlo a través de un embellecedor JSON para limpiarlo.

Una tasa de visitas superior al 0,90 o al 90 % indica que la caché de página completa está funcionando.

Una tasa de visitas inferior al 0,85 o al 85 % puede indicar un problema de configuración del sitio o puede tener instalada una extensión de terceros que no permite almacenar su contenido en caché.

Resolución de problemas de tasa de aciertos de caché general

  1. Mediante las estadísticas de tasa de visitas por hora y por día, identifique cuándo comenzó a disminuir la tasa de visitas. Si la tasa de visitas disminuyó repentinamente aproximadamente al mismo tiempo que implementó un cambio en el sitio, considere revertir el cambio hasta que se reduzca la carga del sitio.
  2. Compruebe la configuración en el administrador de Commerce, en Tiendas > Configuración > Avanzada > Sistema > Caché de página completa. Asegúrese de que el valor TTL para contenido público no esté configurado demasiado bajo.
  3. Asegúrese de cargar los fragmentos de VCL.
  4. Si utiliza fragmentos de VCL personalizados, devíselos para un uso correcto de las acciones "pass" o "pipe": deben utilizarse con cuidado y, como mínimo, con una condición de algún tipo. Para obtener más sugerencias, consulte Fragmentos personalizados de VCL de Fastly en nuestra documentación para desarrolladores.

Paso 3: Identificar los sitios web que causan la alta carga del servidor

Puede utilizar cualquiera de los siguientes métodos para obtener información sobre las direcciones IP que acceden a su tienda Adobe Commerce.

  • Compruebe los registros de acceso HTTP a través de una sesión SSH.
  • Póngase en contacto con el servicio de asistencia técnica de Adobe Commerce para solicitar una lista de direcciones IP que causen una carga pesada en el sitio.

Comprobación de los registros de acceso HTTP

Para ver el registro de acceso del sitio, ejecute el siguiente comando desde el entorno de desarrollo local:

magento-cloud log access

Ver más líneas con

--lines

, por ejemplo:

magento-cloud log access --lines=500

Puede ver este registro y comprobar si una gran parte de las solicitudes provienen de una dirección IP específica. Otra forma es usar awk, sort y uniq para contar automáticamente las direcciones IP que aparecen con más frecuencia en el registro, como las siguientes:

magento-cloud log access --lines 2000 | awk '{print $1}' | sort | uniq -c | sort
  -nr

Si la variable

magento-cloud log

no funciona, puede conectarse al servidor remoto con SSH y comprobar el archivo de registro en /var/log/access.log

Después de identificar las direcciones IP que causan una carga pesada en el servidor, puede bloquearlas configurando una lista de bloqueados IP desde en el panel de administración de Commerce, en Almacenes > Configuración > AVANZADA > Sistema > Caché de página completa > Configuración rápida > Bloqueo.

Si no puede acceder a su administrador debido a una carga pesada, puede utilizar la API de Fastly para configurar las reglas de bloqueo:

  1. Cree la ACL como se describe en Uso de ACL mediante el documento de Fastly de API.

  2. En la sección recv, cree un fragmento de VCL con el siguiente contenido, después de reemplazar ACL_NAME_GOES_HERE con el nombre de la ACL que se creó en el paso anterior:

    code language-none
    if( req.http.Fastly-Client-IP ~ ACL_NAME_GOES_HERE ) {
    error 403 "Forbidden";
    }
    

Para obtener más información sobre cómo bloquear direcciones IP, consulte la Guía del módulo de Fastly Adobe Commerce en GitHub.

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a