Introducción al Error de Límite de Memoria en Magento 2
Magento 2 es una plataforma de comercio electrónico extremadamente potente y robusta, pero también es conocida por consumir una gran cantidad de recursos del servidor. Uno de los problemas más frecuentes a los que se enfrentan los desarrolladores y administradores de tiendas es el temido error Allowed memory size of X bytes exhausted. Este fallo suele aparecer al ejecutar tareas en la línea de comandos (CLI) como compilaciones, actualizaciones de la base de datos o durante la generación de índices, así como al cargar páginas pesadas en el front-end.
Causas Principales del Error Memory Limit en Magento
El origen principal de este problema es que el script de PHP actual ha superado el límite de memoria RAM asignado en la configuración del servidor. Las causas más comunes incluyen:
- Un valor demasiado bajo para la directiva
memory_limiten el archivophp.ini. - Ejecución de comandos de la CLI de Magento sin un límite de memoria ampliado específicamente para la consola.
- Módulos de terceros mal optimizados que generan fugas de memoria (memory leaks).
- Procesos pesados acumulados en la caché o en la cola de mensajes.
Método 1: Aumentar el límite de memoria en el archivo php.ini
La solución más directa es incrementar el límite de memoria global para PHP. Sigue estos pasos para aplicarlo correctamente:
- Accede a tu servidor mediante SSH o utiliza el administrador de archivos de tu hosting.
- Localiza el archivo
php.iniactivo. Ten en cuenta que Magento suele utilizar versiones independientes de PHP para la web y para la CLI. - Abre el archivo y busca la línea correspondiente a
memory_limit. Modifica su valor a un mínimo recomendado de 2GB o 4GB para Magento 2:memory_limit = 2G - Guarda los cambios y reinicia tu servidor web (Apache o Nginx) y el servicio PHP-FPM ejecutando por ejemplo:
sudo systemctl restart php8.1-fpm.
Método 2: Configurar el límite de memoria para comandos CLI
A menudo, el error ocurre al ejecutar comandos de Magento en la terminal. Puedes solucionar esto pasando el parámetro de memoria directamente en la ejecución de PHP sin alterar la configuración general:
- Abre tu terminal SSH y conéctate al directorio raíz de tu instalación de Magento.
- Ejecuta el comando afectado incrementando el límite de memoria de la siguiente manera:
php -d memory_limit=4G bin/magento setup:upgrade - Si utilizas tareas programadas (Cron jobs), asegúrate de que el comando cron también incluya esta directiva para evitar bloqueos nocturnos en la base de datos o en la indexación.