Неустранимая ошибка: допустимый размер памяти 134217728 байт исчерпан (пытался выделить 87 байт)

Когда я вхожу в систему в своем веб-приложении, он показывает ошибку, например:

Неустранимая ошибка: разрешенный размер памяти 134217728 байт исчерпан (пытался выделить 87 байт) в /gt/2.ps.fo/home/hft/domains/console.fo.spalgo.com/public_html/cake/libs/model/datasources /dbo/dbo_mysql.php в строке 775

Есть ли решение для решения этой проблемы? Почему я получаю эту ошибку?

Похоже, вы выделили больше памяти, чем позволяет PHP . Измените параметр memory_limit настройках php.ini вашего сайта, как описано на связанной странице.

Другая вероятность (менее вероятно) заключается в том, что вы нажмете ограничения ресурсов setrlimit(2) для своего пользователя или группы. Проверьте /etc/security/limits.conf на лимиты, которые могут быть установлены для вашего веб-сервера, а также любые сценарии инициализации, запускающие среду вашего сервера и среду интерпретатора PHP.

Первый пример, который я нашел путем поиска SO для «PHP out of memory», – это

Попробуйте использовать echo вместо того, чтобы сначала хранить то, что вы печатаете в переменной.

 ini_set('memory_limit', '-1'); 

Глядя на файл, в котором произошла фатальная dbo_mysql.php ( dbo_mysql.php ), я полагаю, что ваш вызов извлекает данные из dbo_mysql.php данных.

Кроме того, глядя на ограничение памяти, он отображает 134217728 байт, что составляет 128 МБ, поэтому я думаю, что независимо от того, что делает ваш вызов API, он пытается извлечь много данных, которые превышают лимит, выделенный для каждого скрипта.
Например, если последний скрипт в стеке вызовов API должен был использовать 20MB для своих нужд, а затем использовать шины для извлечения данных из БД стоимостью 115MB , ваш скрипт будет пытаться выделить 7MB что на 7 7MB больше предела и, таким образом, вызывает Fatal Exception .

Итак, я вижу несколько вещей, чтобы проверить / сделать:

  1. Чтобы вы не извлекали ненужные данные или, другими словами, извлекали только то, что вам нужно.
  2. Если вам действительно нужны все эти данные, тогда
    • memory_limit значение memory_limit в файле php.ini
      Con: Если ваши данные продолжают расти, возможно, вам придется обновлять это значение только для одного сценария и подвергать себя «я» утечке памяти или нехватке памяти.
    • Или я бы рекомендовал вам реализовать какую-то разбивку на страницы (что позволит вам контролировать ограничения памяти) и сделать ваше приложение более масштабируемым.