Скрипт CLI Php, игнорирующий memory_limit, отказывая в намного более низком количестве, чем предел

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

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

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

Какие-либо подсказки относительно отладки этого?

Спасибо!

7
задан james 30 December 2009 в 20:46
поделиться

3 ответа

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

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

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

.
5
ответ дан 7 December 2019 в 01:22
поделиться

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

Из оболочки bash я сделал следующее:

ulimit -v (memory_in_bytes, без скобок)

это исправило мою проблему. god i love stackoverflow

5
ответ дан 7 December 2019 в 01:22
поделиться

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

ini_set('memory_limit', -1);

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

.
0
ответ дан 7 December 2019 в 01:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: