Php CLI скрипт игнорирует memory_limit, сбой при гораздо меньшем числе, чем предел

по какой-то причине мой один из моих php-скриптов игнорирует лимит памяти php.ini или ini_set.

Когда я делаю print_r (ini_get_all), он показывает, что ограничение глобальной памяти установлено на 100M (и, в зависимости от ситуации, на месте), когда мой скрипт умирает при фатальной ошибке: Out of memory (выделено 24714304) (пытался выделить 571 байт)

Какие-нибудь советы по диагностике этого? Сервер имеет 8 гигабайт памяти и никогда не имел проблем с запуском этого скрипта раньше.

Любые советы по отладке?

Благодаря!

Наиболее распространенной причиной этого является то, что обычно бинарный файл CLI PHP использует другой файл php.ini, чем вы ожидаете. Это может быть вызвано правами пользователя или просто разными файлами php.ini по умолчанию для установленных версий PHP. Однако, похоже, что вы немного профилировали его, и ваш лимит памяти может быть правильным внутри вашего скрипта.

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

Я предлагаю взглянуть на эту тему , поскольку этот плакат прошел через нечто очень похожее на вашу ситуацию.

Виртуальная память для моих процессов была жестко ограничена (слишком много меньше).

Из оболочки bash я сделал это:

ulimit -v (memory_in_bytes, без круглых скобок)

это исправило мою проблему. бог, я люблю stackoverflow

короткий и сладкий

ini_set('memory_limit', -1); 

в случае, если вы хотите пропустить отладку