PHP имеет ограничения памяти, установленные на глобальном уровне в файле PHP.ini. Я также знаю, что они могут быть настроены на местном уровне.
Наш предел памяти для запроса установлен в 132 МБ, но мы продолжаем получать ошибки как это:
Fatal error: Allowed memory size of 161480704 bytes exhausted (tried to allocate 32 bytes) in #{removed_file_path}/script.php on line #{line}
В настоящее время мы отслеживаем наши системы с помощью файла журнала ошибок, который кэширует ошибки, пока пользователи просматривают страницу, а также использует cron
; однако, они нигде не регистрируются.
Ошибка может быть исправлена путем изменения любых звонков на mysql_query
в mysql_unbuffered_query
Однако мне нужно знать, где это нужно изменить для всех файлов на сервере. Если на самом деле в скрипте нет проблем с памятью, я не хочу менять код, поскольку хочу, чтобы сервер считывал результаты в ОЗУ везде, где это возможно.
Мы не хотим увеличивать наш предел памяти в PHP, так как наш хост советует нам против этого.
Что можно сделать, чтобы исправить проблемы с памятью? Мы работаем на CentOS 6.7.
Задача ещё не решена.
Других решений пока нет …