Параметр memory limit

Параметр memory limit в PHP определяет количество оперативной памяти, доступное скриптам. Неправильное значение может привести к ошибкам.

 

 

Параметр memory limit в PHP

memory limit задается в файле php.ini и ограничивает количество памяти для скриптов. Путь к php.ini, который нужно редактировать всегда можно увидеть в файле phpinfo с кодом <?php phpinfo(); . Файл размещается в корне сайта.

Для небольших ресурсов оптимальными являются значения, измеряемые в сотнях мегабайт — 128256512.



Параметр memory limit
 

Для современных CMS вроде WordPress меньше 64 Мб обычно уже недостаточно даже при отсутствии каких-либо плагинов, расширяющих функционал.

 

Лимиты могут быть значительно больше, все зависит от того, какие скрипты запускаются. Однако, устанавливать слишком большие значения также неверно.

 

Количество ресурсов для любой машины ограничено. Фиксирован объем диска, ресурса процессора и RAM. Если всю память выделить для PHP скриптов при определенных условиях ее может не хватить для других процессов, что приведет к сбоям. OOM — типичная ситуация, от него может страдать любая служба, часто это сервер баз данных.

 

 

С другой стороны маленькое значение будет вызывать ошибки 500 с записями типа «Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 32 bytes) в логах веб-сервера.

 

 

Если значение увеличено и ошибки продолжают возникать — имеет место утечка памяти, возникающая из-за плохо написанных скриптов. В такой ситуации нужно включить логи ошибок PHP, они помогут выявить скрипты, которые требуют доработки.

Запись опубликована автором в рубрике PHP.