2013-11-14 4 views
0

Мы установили пользователя nginx для запуска следующей команды с интервалом в 5 минут.Ошибки размера памяти при запуске Magento cron.sh

sh /var/www/magento/cron.sh 

Это было выполнено довольно успешно в течение некоторого времени. В течение последнего месяца или около того он начал выходить из строя каждый раз из-за ограничения памяти. Я увеличил ограничение памяти, но это только вызвало более высокий предел, который достигается. Кажется, что должна быть большая проблема. Ошибка следующая.

Fatal error: Allowed memory size of 262144 bytes exhausted 
(tried to allocate 7680 bytes) in /var/www/magento/app/Mage.php on line 589 

Ниже приведены crons, что Magento имеет набор для запуска каждые пять минут:

job: xmlconnect_notification_send_all 
model: xmlconnect/observer::scheduledSend 
file: /var/www/magento/app/code/core/Mage/XmlConnect/etc/config.xml 

job: newsletter_send_all  
model: newsletter/observer::scheduledSend 
file: /var/www/magento/app/code/core/Mage/Newsletter/etc/config.xml 

job: enterprise_staging_automates 
model: enterprise_staging/observer::automates 
file: /var/www/magento/app/code/core/Enterprise/Staging/etc/config.xml 

ответ

0

Это проблема установки сервера. Ваш php CLI memory_limit установлен слишком низко.

Откажитесь от него до 256M.

Если у вас нет собственного сервера, вам необходимо связаться с вашим хостинг-провайдером.

1

Ваше сообщение об ошибке имеет все ответы

Разрешены памяти размером 262144 байт исчерпаны

В то время как 262144 байтов выглядит как большое число, это только 256KB, или около .25 MB

Я считаю, что в документах Magento рекомендуется использовать ограничение памяти 256 МБ, причем 512 МБ является гораздо более распространенным явлением в дикой природе. Вам нужно убедиться, что ваша версия PHP (или в командной строке PHP, запущенная cron.sh), правильно установлена ​​memory_limit ini. Одна распространенная ошибка здесь, чтобы опустить M или использовать MB

; Will not do what you want it to 
memory_limit=256 
memory_limit=256MB 

Поэтому убедитесь, что ваш файл конфигурации устанавливается что-то вроде этого

memory_limit=256M 
+0

Также обратите внимание, что существует несколько различных процессоров PHP, участвующих в управлении Magento. В настоящее время в нескольких вариантах Linux вы можете иметь отдельные конфигурации для команд командной строки (cli), CGI (fastCGI) и Apache DSO-модулей. Большинство людей используют Apache DSO и cli. Интерфейс и бэкэнд веб-сайта используют настройки DSO, скрипты, такие как shell/*, cron.php, завершаются cli. Вы обнаружите, что параметр memory_limit в .htaccess не влияет на интерпретатор cli php. Использование phpinfo(), вызываемое каждым интерпретатором, поможет устранить проблему с ошибкой ограничения памяти. В этом случае nginx nix DSO –

+0

«Я увеличил ограничение памяти, но это только привело к тому, что достигнут более высокий предел». – eisaacson

+0

Если ваша ошибка соответствует «Разрешенному размеру памяти 262144», то вы не увеличили предел памяти. –

Смежные вопросы