Prácticas recomendadas de configuración
Commerce proporciona muchos ajustes y herramientas que puede utilizar para mejorar el tiempo de respuesta en las páginas y proporcionar un mayor rendimiento.
Cron Jobs
Todas las operaciones asincrónicas de Commerce se realizan con el comando Linux cron
. Consulte Configurar y ejecutar cron para configurarlo correctamente.
Indexadores
Un indizador se puede ejecutar en modo Update on Save o Update on Schedule. El modo Update on Save indiza inmediatamente cada vez que cambia el catálogo u otros datos. Este modo asume una baja intensidad de las operaciones de actualización y navegación en su tienda. Esto puede provocar retrasos significativos y la falta de disponibilidad de los datos durante cargas altas. Se recomienda usar Actualización programada con fines de rendimiento, ya que almacena información sobre actualizaciones de datos y realiza la indexación por partes en segundo plano a través de un trabajo cron específico. Puede cambiar el modo de cada indizador Commerce por separado en la página de configuración System > Tools > Index Management. El índice Customer Grid siempre debe establecerse en el modo Update on Save.
Cachés
Cuando inicie su tienda en producción, active todas las cachés de la página System > Tools > Cache Management. Se recomienda encarecidamente usar Varnish, ya que es una solución eficiente de caché de páginas de producción.
Notificaciones de correo electrónico asincrónicas
Al habilitar la configuración "Notificaciones por correo electrónico asincrónicas" se mueven al segundo plano los procesos que administran las notificaciones por correo electrónico de cierre de compra y procesamiento de pedidos. Para habilitar esta característica, vaya a Stores> Settings > Configuration > Sales > Sales Emails > General Settings >Asynchronous Sending. Consulte Correos electrónicos de ventas en la Guía del usuario de administración para obtener más información.
Procesamiento asincrónico de datos de pedidos
Puede haber momentos en que se produzcan ventas intensivas en una tienda al mismo tiempo que Commerce está realizando un procesamiento intensivo de pedidos. Puede configurar Commerce para distinguir estos dos patrones de tráfico en el nivel de base de datos a fin de evitar conflictos entre las operaciones de lectura y escritura en las tablas correspondientes. Puede almacenar e indexar datos de pedido de forma asíncrona. Los pedidos se almacenan temporalmente y se mueven de forma masiva a la cuadrícula de Order Management sin que se produzcan conflictos. Puede activar esta opción desde Stores> Settings > Configuration > Advanced > Developer > Grid Settings >Asynchronous indexing. Consulte Actualizaciones programadas de cuadrícula en la Guía del usuario de administración para obtener más información.
Developer
.Guardado de configuración asíncrona
Para los proyectos con un gran número de configuraciones en el nivel de almacén, guardar una configuración de almacén puede llevar una cantidad excesiva de tiempo o provocar un tiempo de espera. El módulo Async Config habilita los guardados de configuración asincrónica ejecutando un trabajo cron que usa un consumidor para procesar el guardado en una cola de mensajes. AsyncConfig está deshabilitado de manera predeterminada.
Puede habilitar AsyncConfig mediante la interfaz de la línea de comandos:
bin/magento setup:config:set --config-async 1
El comando set
escribe lo siguiente en el archivo app/etc/env.php
:
...
'config' => [
'async' => 1
]
Inicie el siguiente Consumidor para comenzar a procesar los mensajes en cola en el orden de entrada y salida:
bin/magento queue:consumers:start saveConfigProcessor --max-messages=1
Actualización de stock diferida
En tiempos de ventas intensas, Commerce puede aplazar las actualizaciones de existencias relacionadas con los pedidos. Esto minimiza el número de operaciones y acelera el proceso de colocación de pedidos. Sin embargo, esta opción es arriesgada y solo se puede utilizar cuando los pedidos no satisfechos se activan en la tienda, ya que esta opción puede dar lugar a cantidades de stock negativas. Esta opción puede proporcionar una mejora significativa del rendimiento en los flujos de cierre de compra para tiendas que pueden rellenar fácilmente sus existencias bajo demanda. Para activar las actualizaciones de existencias diferidas en el sitio, vaya a Stores> Settings > Configuration > Catalog > Inventory > Product Stock Options >Use Deferred Stock Update. Consulte Administración de inventario en la Guía del usuario de Adobe Commerce para obtener más información.
Configuración de optimización del lado del cliente
Para mejorar la capacidad de respuesta de la tienda de su instancia de Commerce, vaya al modo de administrador predeterminado o de desarrollador y cambie la siguiente configuración:
Stores-> Configuration -> Advanced -> Developer:
Developer
.Al activar la opción Enable JavaScript Bundling, permite que Commerce combine todos los recursos JS en uno o un conjunto de paquetes que se cargan en páginas de tienda. Agrupar JS resulta en menos solicitudes al servidor, lo que mejora el rendimiento de la página. También ayuda al explorador a almacenar en caché los recursos JS en la primera llamada y a reutilizarlos en todas las exploraciones posteriores. Esta opción también ofrece una evaluación diferida, ya que todos los JS se cargan como texto. Inicia el análisis y la evaluación del código solo después de activar acciones específicas en la página. Sin embargo, esta configuración no se recomienda en tiendas donde el primer tiempo de carga de página es extremadamente crítico, ya que todo el contenido JS se cargará en la primera llamada.
Paquetes de sugerencias
- Le recomendamos que utilice herramientas de terceros para la minificación y el agrupamiento (como r.js). Los mecanismos integrados de Commerce no son óptimos y se envían como alternativas de reserva.
- La activación del protocolo HTTP/2 puede ser una buena alternativa al uso del agrupamiento JS. El protocolo ofrece muchas de las mismas ventajas. Está habilitado de forma predeterminada en Adobe Commerce en proyectos de infraestructura en la nube.
- No se recomienda utilizar la configuración obsoleta como la combinación de archivos JS y CSS, ya que fueron diseñados solo para JS cargados sincrónicamente en la sección HEAD de la página. El uso de esta técnica puede hacer que el agrupamiento y la lógica requireJS funcionen incorrectamente.
Validación de segmentos del cliente
Los comerciantes que tienen un gran número de segmentos de clientes pueden experimentar una degradación significativa del rendimiento con las acciones de los clientes, como el inicio de sesión de clientes y la adición de productos al carro de compras.
Déclencheur Las acciones del cliente configuran un proceso de validación para los segmentos del cliente, que es lo que puede causar una degradación del rendimiento. De forma predeterminada, Adobe Commerce valida cada segmento en tiempo real para definir qué segmentos del cliente coinciden y cuáles no.
Para evitar la degradación del rendimiento, puede establecer la opción de configuración del sistema Real-time Check if Customer is Matched by Segment en No para validar segmentos de clientes mediante una única consulta SQL de condición combinada.
Para habilitar esta optimización, vaya a Stores> Settings > Configuration > Customers > Customer Configuration > Customer Segments >Real-time Check if Customer is Matched by Segment.
Esta configuración mejora el rendimiento de la validación de segmentos del cliente si hay muchos segmentos de cliente en el sistema. Sin embargo, no funciona con implementaciones de split database o cuando no hay clientes registrados.
Programación de mantenimiento de base de datos database
Se recomienda realizar copias de seguridad periódicas de la base de datos para las instancias de ensayo y producción. Debido a la naturaleza intensiva de E/S de las operaciones de copia de seguridad, puede encontrar copias de seguridad más lentas y posibles problemas. La ejecución de procesos de base de datos para varios entornos al mismo tiempo puede resultar potencialmente más lenta debido a la contención por los recursos disponibles.
Para obtener un mejor rendimiento, programe las copias de seguridad para que se ejecuten sucesivamente, de una en una, en las horas de menor actividad. Este método evita la contención de E/S y reduce el tiempo de finalización, especialmente para instancias más pequeñas, bases de datos más grandes, etc.
Por ejemplo, se recomienda programar una copia de seguridad de la base de datos de producción seguida de la base de datos de ensayo cuando las tiendas reciban menos visitas.
Limitar el número de productos en la cuadrícula
Para mejorar el rendimiento de la cuadrícula de productos en catálogos grandes, se recomienda limitar el número de productos en la cuadrícula con la configuración del sistema Stores> Settings > Configuration > Advanced > Admin > Admin Grids >Limit Number of Products in Grid.
Esta opción de configuración del sistema está deshabilitada de forma predeterminada. Si lo habilita, puede limitar el número de productos en la cuadrícula a un valor específico. Records Limit es una configuración personalizable que tiene un valor mínimo predeterminado de 20000
.
Cuando la configuración Limit Number of Products in Grid está habilitada y el número de productos en la cuadrícula es mayor que el límite de registros, se devuelve la colección limitada de registros. Cuando se alcanza el límite, el total de registros encontrados, el número de registros seleccionados y los elementos de paginación se ocultan del encabezado de la cuadrícula.
Cuando el número total de productos en la cuadrícula es limitado, no afecta a las acciones de masa de la cuadrícula de productos. Solo afecta a la capa de presentación de la cuadrícula de productos. Por ejemplo, hay un número limitado de 20000
productos en la cuadrícula, el usuario hace clic en Select All, selecciona la acción masiva Update attributes y actualiza algunos atributos. Como resultado, se actualizarán todos los productos, no la colección limitada de 20000
registros.
La limitación de la cuadrícula de productos solo afecta a las colecciones de productos que utilizan los componentes de la interfaz de usuario. Como resultado, esta limitación no afecta a todas las cuadrículas de productos. Solamente los que están usando Magento\Catalog\Ui\DataProvider\Product\ProductCollection
.
Puede limitar las colecciones de cuadrículas de productos solo en las páginas siguientes:
- Cuadrícula de producto de catálogo
- Agregar cuadrícula de productos relacionados/de ampliación de venta/de venta cruzada
- Añadir productos al paquete de productos
- Añadir productos al grupo de productos
- Página Administrador: Crear Pedido
Si no desea que la cuadrícula de productos esté limitada, le recomendamos que utilice filtros más precisos para que la colección de resultados tenga menos elementos que Records Limit.