Как обойти ошибку mmap() failed: [12] Cannot allocate memory?

При попытке записать большой объем данных в СУБД выпадает ошибка mmap() failed: [12] Cannot allocate memory?
Скрипт выполняется через php (nginx). СУБД - mysql .
Запускается через терминал.
Для выполнения скрипта использую фреймворк Symfony2.8

Ошибка:
mmap() failed: [12] Cannot allocate memory

mmap() failed: [12] Cannot allocate memory
PHP Fatal error:  Out of memory (allocated 3083886592) (tried to allocate 25165832 bytes) in /server/www/erohost.dev/www/vendor/symfony/symfony/src/Symfony/Component/Stopwatch/StopwatchEvent.php on line 102
[2016-02-13 12:37:13] php.CRITICAL: Fatal Error: Out of memory (allocated 3083886592) (tried to allocate 25165832 bytes) {"type":1,"file":"/server/www/erohost.dev/www/vendor/symfony/symfony/src/Symfony/Component/Stopwatch/StopwatchEvent.php","line":102,"level":-1,"stack":[]} 


                                                                                  
  [Symfony\Component\Debug\Exception\OutOfMemoryException]                        
  Error: Out of memory (allocated 3083886592) (tried to allocate 25165832 bytes)


Как можно решить эту проблему ?
  • Вопрос задан
  • 7080 просмотров
Решения вопроса 1
Записывать можно "постранично", скажем, порциями по 1000 записей, обворачивая запрос в транзакцию.
Количество записей в "странице" можно определить опытным путём, исходя из наличия количества доступной памяти.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Frankenstine
@Frankenstine
Сисадмин
PHP Fatal error: Out of memory

Извините, но пыхпыху банально не хватило памяти :) Увеличьте лимит памяти в php.ini
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы