Подтвердить что ты не робот

Чем лучше для PHP memory_limit?

В PHP я часто сталкиваюсь с проблемой ограничения памяти. Особенно с высокоресурсовыми интегрированными системами, такими как Drupal и т.д.

Что я хочу знать здесь:

  • Хорошо ли иметь очень высокий предел памяти php, например, 2 ГБ?
  • Есть ли главный недостаток?

Отредактировано:

Как сценарий, например, в Drupal, НУЖДАЕТСЯ так много памяти, в то время как мы CLEAR CACHE через веб-панель (не с помощью Drush или любого script). Так что даже для этот случай только, я определенно нуждаюсь в максимальном ограничении около 512 МБ в настоящее время.

4b9b3361

Ответ 1

Золотое правило: дает только PHP, что PHP должен работать, и не более того.

Это предотвратит ситуации, когда ваша система будет бесполезно забиваться в процессе PHP, а также поможет вам найти ошибки (A script, что занимает 1 ГБ памяти, необычно, и ограничение на 2 ГБ памяти скроет это).


В исключительных случаях, когда вы знаете, что один файл script очень тяжелый, вы можете использовать ini_set() для изменения директивы ограничения памяти при запуске, время. См. this и .

Ответ 2

Нет, тем больше не лучше. Это количество памяти, которую может использовать один script. Если ваш сервер содержит, скажем, 4 ГБ памяти, только два сценария одновременно могут съесть всю эту память.

В общем, скрипты PHP должны использовать небольшую память. Обычно вся память a script резервы освобождаются, когда она завершается, но вы можете очистить память до этого явным образом unset переменных ting, которые больше не нужны во время выполнения. Таким образом, вы можете сделать ваш script более эффективным с точки зрения памяти.

Ответ 3

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

Также имейте в виду, что неисправный script, который может оказаться в бесконечном цикле обработки некоторых данных, часто останавливается довольно быстро, если ограничение на память составляет 64 МБ или что-то в этом роде. Имея ограничение на память в 4 ГБ в этом сценарии, вы оставите систему с полным наклоном в бесконечном цикле дольше и может привести к тому, что вся ваша система перестанет реагировать.

Но у меня были большие хрусткие данные с ограничениями памяти около 2-4 ГБ без каких-либо проблем с системами с памятью 4-8 ГБ. Обратите внимание, что, как заявили другие пользователи, эти приложения были ОДНОМ экземпляру. Если у вас есть приложения, которые запускают несколько экземпляров ваших сценариев (например, большинство веб-приложений), вы столкнетесь с серьезными проблемами, используя много памяти в каждом экземпляре. У вас не хватит памяти, и дальнейшие клиенты не смогут использовать ваше приложение до освобождения памяти.

Но не просто наращивайте ограничение памяти, чтобы скрыть проблемы. Проверьте, почему ваше приложение требует много памяти и посмотрите, можете ли вы исправить это в первую очередь.