В чем разница между WP_MEMORY_LIMIT и WP_MAX_MEMORY_LIMIT?

15 июн. 2017 г., 22:42:09
Просмотры: 48.6K
Голосов: 18

В чем разница между

define( 'WP_MEMORY_LIMIT', '96M' ); и define( 'WP_MAX_MEMORY_LIMIT', '256M' );

На моем хостинге установлено следующее

define( 'WP_MEMORY_LIMIT', '786M' ); 
define( 'WP_MAX_MEMORY_LIMIT', '512M' );

это правильно, должен ли WP_MAX_MEMORY_LIMIT быть выше?

0
Все ответы на вопрос 2
1
17

WordPress сообщает нам:

Опция WP_MEMORY_LIMIT позволяет указать максимальный объем памяти, который может быть использован PHP. Эта настройка может понадобиться, если вы получили сообщение типа "Allowed memory size of xxxxxx bytes exhausted".

Или, как говорится в документации PHP:

[Лимит памяти] помогает предотвратить потребление всей доступной памяти сервера плохо написанными скриптами.

WordPress Codex также говорит об этих константах:

Эта настройка [WP_MEMORY_LIMIT] увеличивает память PHP только для WordPress, а не для других приложений. По умолчанию WordPress попытается увеличить выделенную PHP память до 40MB (код находится в начале /wp-includes/default-constants.php) для одиночного сайта и 64MB для мультисайта, поэтому настройка в wp-config.php должна отражать значение выше 40MB или 64MB в зависимости от вашей конфигурации.

И отдельно о WP_MAX_MEMORY_LIMIT:

Административные задачи требуют гораздо [больше] памяти, чем обычная работа. В административной области память может быть увеличена или уменьшена относительно WP_MEMORY_LIMIT путем определения WP_MAX_MEMORY_LIMIT.

Таким образом, WP_MEMORY_LIMIT — это лимит, а WP_MAX_MEMORY_LIMIT, если он установлен, переопределит первый в админке.

Теперь, когда вы спрашиваете "правильно ли это", мы не можем дать вам однозначного ответа.

Возможно, вам стоит увеличить эти лимиты, если ваш сайт растет в плане посетителей и/или активных плагинов, но если у вас нет никаких проблем, я бы сказал, что пока все в порядке.

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

15 июн. 2017 г. 23:27:54
Комментарии

Заметил, что на одном из моих сайтов возникла ошибка "memory exhausted" во время работы плагина Postie. Оказалось, что у меня был установлен WP_MEMORY_LIMIT в 300M, но не было записи для WP_MAX_MEMORY_LIMIT. Поскольку Postie работает на уровне админки, я добавил WP_MAX_MEMORY_LIMIT с тем же значением 300M в wp-config, и ошибка исчезла. Ваш опыт может отличаться.

Rick Hellewell Rick Hellewell
9 янв. 2018 г. 20:44:43
1

WP_MEMORY_LIMIT - это лимит по умолчанию, установленный для фронтенда, но он может быть увеличен до WP_MAX_MEMORY_LIMIT в админ-панели WordPress, а также для некоторых других функций, таких как обработка изображений.

Короче говоря, вам нужно установить WP_MEMORY_LIMIT в первую очередь для доступа через фронтенд, таким образом, чтобы не расходовать память при одновременном обращении множества пользователей к серверу. А WP_MAX_MEMORY_LIMIT следует установить выше, чтобы разрешить выполнение административных функций, которые требуют больше ресурсов, но имеют меньшую конкурентность.

15 июн. 2017 г. 23:17:48
Комментарии

Это почти идеальный ответ! Краткий и лаконичный. Если добавить несколько ссылок на официальный Codex, это будет безупречный ответ.

Alex Alex
1 апр. 2024 г. 22:00:04