ACP2E-4908: Los catálogos grandes causan un uso excesivo de la memoria Redis o Valkey
La revisión ACP2E-4908 corrige el problema en el cual los catálogos grandes podrían causar un uso excesivo de memoria en Valkey (o Redis) porque se crearon entradas de caché de diseño independientes para cada producto en cada vista de tienda. Esta revisión está disponible cuando está instalado Quality Patches Tool (QPT) 1.1.83. El ID del parche es ACP2E-4908. Este problema está programado para solucionarse en Adobe Commerce 2.4.10.
Productos y versiones afectados
El parche se ha creado para la versión de Adobe Commerce:
- Adobe Commerce (todos los métodos de implementación) 2.4.8-p4
Compatible con versiones de Adobe Commerce:
- Adobe Commerce (todos los métodos de implementación) >=2.4.8 <2.4.10
magento/quality-patches a la última versión y compruebe la compatibilidad en la página Quality Patches Tool: buscar parches . Utilice el ID de parche como palabra clave de búsqueda para localizar el parche.Problema
Los catálogos grandes pueden causar un uso excesivo de la memoria en Redis o Valkey porque se crean entradas de caché de diseño independientes para cada producto en cada vista de tienda.
Pasos a seguir:
-
Configure Valkey (o Redis) como el backend de caché predeterminado.
-
Edite
app/etc/env.phpy establezca el bloque cache.frontend.default en:code language-none 'default' => [ 'id_prefix' => '061_', 'backend_options' => [ 'server' => 'valkey', // your Valkey/Redis hostname 'port' => '6379', 'database' => '1', 'password' => '', 'compress_data' => '0', // key recipe — leaves XML uncompressed 'persistent' => 0, 'read_timeout' => 10, 'connect_retries' => 2, ], 'backend' => 'redis', ],Luego
flush: bin/magento cache:flush. -
Genere la sujeción de rendimiento medio:
code language-none bin/magento setup:performance:generate-fixtures \ setup/performance-toolkit/profiles/ce/medium.xmlEsto produce 3 sitios web × 3 grupos de tiendas × 3 vistas de tiendas, 24 000 productos simples + 640 configurables, 33 conjuntos de atributos, 50 000 pedidos. Calcula 10 min en una máquina rápida.
-
Restablecer Valkey
db1y calentar:code language-none valkey-cli -h <host> -n 1 FLUSHDB bin/magento cache:flush -
Rastrear páginas de productos entre tiendas. Genere una lista de muestra y pulse cada URL:
code language-none # Build 200 random product URLs across stores 1–4 mysql -e "SELECT CONCAT(s.code,'|',u.request_path) FROM url_rewrite u JOIN store s ON u.store_id=s.store_id WHERE u.entity_type='product' AND u.request_path NOT LIKE 'catalog/product/%' AND s.store_id BETWEEN 1 AND 4 ORDER BY RAND() LIMIT 200;" magento > urls.txt while IFS='|' read -r STORE URL; do curl -s -o /dev/null "http://<base-url>/${URL}?___store=${STORE}" done < urls.txt -
Observe el espacio en caché de
LAYOUT:code language-none valkey-cli -h <host> -n 1 --scan --pattern "*LAYOUT_FRONTEND_STORE*" | wc -l valkey-cli -h <host> INFO memory | grep used_memory_humanAmplíe la rastrea (o use
large.xml/extra_large.xmly una herramienta de carga real como siege/work) para alcanzar el régimen de 10 000 claves/1,7 GB del cliente.
Resultados esperados:
El rendimiento no se ve afectado cuando la compresión está habilitada.
Resultados reales:
- Las claves
LAYOUT_FRONTEND_STORERedis consumen una cantidad de espacio considerable. - En una instalación nueva de instalación de instalación media, después de 200 visitas al producto: aproximadamente 564 claves
LAYOUT_FRONTEND_STOREyused_memory_humande aproximadamente 20 MB (frente a los aproximadamente 10 MB de línea de base antes de la rastrea): aproximadamente 2,8 claves de caché de DISEÑO por visita de página de producto, lo que aumenta linealmente con los productos únicos visitados × tiendas.
Aplicar el parche
Para aplicar parches individuales, utilice los siguientes vínculos según el método de implementación:
- Adobe Commerce o Magento Open Source local: Quality Patches Tool > Uso en la guía Quality Patches Tool
- Adobe Commerce en la infraestructura de la nube: Actualizaciones y parches > Aplicar parches en la guía Commerce en la infraestructura de la nube
Lectura relacionada
Para obtener más información sobre Quality Patches Tool, consulte:
- Quality Patches Tool: herramienta de autoservicio para parches de calidad en la guía Herramientas