PHP Out of memory

Вопросы по работе с Apache, Nginx, PHP, MySQL, Sendmail и т.д.
newd
Сообщения: 30
Зарегистрирован:
18 май 2012, 08:41

PHP Out of memory

newd » 06 сен 2014, 13:57

Вчера столкнулся с проблемой при обработке больших файлов(200-300Мб)
Fatal error: Out of memory (allocated 157286400) (tried to allocate 345026221 bytes)
.
Думаю, да ладно - не беда. На ноуте 12 гигов память, выдам сколько надо.
Выставил мемори лимит в пхп.ини на 2 гига. Не помогло.
Выставил через ини_сет. Не помогло. Крутил вертел. Попробовал и 5.4 и 5.5 версии. В итоге так и не победил. Пришлось обрабатывать кусками по 50Мб.
На ноуте стоит Вин8.1.Оупен Сервер версии 5.1.1. Работа велась через консоль ConEmu.
Кто нибудь сталкивался с такими вылетами по причине нехватки памяти, когда памяти и выделено достаточно и физически достаточно?
Аватара пользователя
Максим
Сообщения: 5414
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 06 сен 2014, 14:09

newd, поменяйте параметр в шаблоне конфигурации, как и положено, и перезапустите сервер, после чего переоткройте консоль.
CrazyPHP
Сообщения: 4
Зарегистрирован:
20 окт 2013, 22:43

CrazyPHP » 06 ноя 2014, 21:24

У меня та же проблема, вот скрины:

Параметр memory_limit показываемый phpinfo: http://joxi.ru/lJ2bXgXpcPM1r6 (4 GB)
Ошибка о недостатке памяти: http://joxi.ru/1bmobEbPTDlLry (всего 1 GB)

Какой ещё шаблон? Изменял вот тут: http://joxi.ru/gkrDkzkVTpdjAp
Аватара пользователя
Максим
Сообщения: 5414
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 06 ноя 2014, 21:37

CrazyPHP, в Windows 32-битный модуль PHP (который используется в Open Server) имеет максимальный лимит ~1.5 ГБ, а с учётом расширений PHP (intl, memcache,mongo, ioncube и т.д.) которые есть в Open Server и их настроек скрипту реально достаётся от 0.8 до 1.3 гигабайта максимум. Так что поставьте значение memory_limit = -1 это вообще отключит лимит. Если память нужна позарез, отключите все расширения PHP и расширения Zend (zend optimizer, ioncube, x-debug).

Если после выполнения этих настроек скрипту всё равно не получится занять более 1 гига памяти, то убедитесь что она у вас вообще есть, эта свободная память. Мало ли, может у вас в компьютере памяти всего 2 гига и открыто 100 вкладок в браузере.

Подождите ближайшего обновления Open Server, там будет 64-битный PHP не имеющий проблем с лимитами по памяти.
Аватара пользователя
Максим
Сообщения: 5414
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 19 ноя 2014, 04:27

Ошибочка вышла, до полутора гигов лимит, а не до двух. Выяснил только сейчас на тестах и потом уже полез в google. Поправил предыдущее сообщение.

P.S. В тестах интересное получил, особенно расширение php_intl "порадовало". Если в php.ini оставить только одну строку memory_limit = -1 то получится прочитать файл в строку размером 1.56 ГБ. Если же использовать тот php.ini что идёт изначально в комплекте с Open Server ничего не отключая, то у меня получилось читать файлы размером лишь чуть больше 800 мегабайт. Если отключить расширение php_intl то уже размером до 1.25 гига файлы спокойно прочитываются.
CrazyPHP
Сообщения: 4
Зарегистрирован:
20 окт 2013, 22:43

CrazyPHP » 19 ноя 2014, 10:24

Да пришлось обойти ограничение обработкой по очень маленьким порциям.
newd
Сообщения: 30
Зарегистрирован:
18 май 2012, 08:41

newd » 05 мар 2015, 21:00

Cервер с 64 битной версией php когда планируется?
Хочется без танцев с бубнами )
Аватара пользователя
Максим
Сообщения: 5414
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 06 мар 2015, 12:09

newd писал(а):Cервер с 64 битной версией php когда планируется?
Хочется без танцев с бубнами )
Должна была быть ещё на новый год. Но сначала я долго болел, потом началась запара по работе (и сейчас есть), поэтому к сожалению не могу найти времени сделать релиз. Думаю что в течении 2 недель будет, во всяком случае я постараюсь.
newd
Сообщения: 30
Зарегистрирован:
18 май 2012, 08:41

newd » 06 мар 2015, 19:44

Спасибо вам Максим! Что развиваете проект.
Я вчера прикрутил себе php5.5x64 + apache2.4x64 полет нормальный ))
AdeptO
Сообщения: 28
Зарегистрирован:
17 дек 2014, 22:57

AdeptO » 17 ноя 2015, 15:25

newd писал(а):PHP Out of memory
неподскажеш как? у меня щас такая проблема нифига непомагает
Ответить