Большая папка с изображениями вылетает из Symfony "кеш: очистить" с OutOfMemoryException

Когда я помещаю большую папку с изображениями в свой /web folder, "cache"clear" команда терпит неудачу с

"OutOfMemoryException"

PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 151552 bytes) in /Users/john/Development/git/website/vendor/twig/twig/lib/Twig/Compiler.php on line 124

[Symfony\Component\Debug\Exception\OutOfMemoryException]                                  
Error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 151552 bytes)  

Exception trace:
() at /Users/john/Development/git/website/vendor/twig/twig/lib/Twig/Compiler.php:124

Папка с изображениями содержит 10.000 изображений и имеет размер около 600 МБ. Когда я удаляю эту папку, команда "cache:clear" выполняется успешно.

я использую Symfony 2.8 с PHP 7.1, Ограничение памяти PHP установлено на 512 МБ, что является максимальным значением для моего хостинга.

Обновить:

Когда я добавлю --no-warmup к команде, я не понимаю exception,

$ php app/console cache:clear --verbose --no-warmup

2 ответа

Решение

Вы можете ограничить использование команды php следующим образом:

php -d memory_limit=512M app/console cache:clear --verbose --no-warmup

Надеюсь, что это работает для вас:)

Что вы можете сделать, это изменить memory_limit на ini_set('memory_limit', '-1'); но это не решение вообще.

Пожалуйста, не делай этого. Очевидно, что php где-то имеет утечку памяти, и вы говорите серверу просто использовать всю нужную ему память. Проблема не была решена вообще. Если вы проконтролируете свой сервер, вы увидите, что он теперь, вероятно, использует большую часть оперативной памяти и даже подключается к диску.

Возможно, вам следует попытаться отследить точную ошибку в вашем коде и исправить ее.

Другие вопросы по тегам