Требования к Magento 2.x PHP memory_limit

11

Я заметил, что руководство по Magento 2.1 рекомендует memory_limit=2Gвphp.ini . Это сумасшедший объем памяти, разве эта память не разрешена для HTTP-запроса? Я сомневаюсь, что есть какой-либо хостинг-провайдер, который предоставляет такой объем памяти для PHP-скриптов и, безусловно, делает Magento нежизнеспособным для виртуального хостинга.

Это, возможно, сумма для настройки и миграции? Эта сумма действительно нужна для производства?

Я также нашел в документации:

Set the PHP memory limit.
Our detailed recommendations are: 
Compiling code or deploying static assets, 756M 
Installing and updating Magento components from Magento Marketplace, 2G 
Testing, 2G

Здесь не упоминаются производственные рекомендации. Что рекомендуется для производства?

MARKE
источник

Ответы:

8

Как объясняет фрагмент документации, который вы нашли, 2Gявляется лимит памяти для всех возможных вариантов использования. Некоторые операции (особенно операции командной строки, такие как настройка, тестирование и компиляция) могут занимать значительный объем памяти в зависимости от размера и сложности вашей установки.

Некоторые вещи, на которые стоит обратить внимание:

  1. memory_limitэто максимальный объем памяти, который может занять данный PHP-запрос до его завершения. Это не общий объем памяти, который займет каждый запрос. На практике большинство обращений к фронту занимают гораздо меньше памяти (вероятно, 60 МБ или меньше для большинства страниц, категорий, продуктов CMS), а некоторые выбросы (извлечение) занимают в несколько раз больше в зависимости от интеграции, настройки и т. Д.
  2. Некоторые серверы позволяют вам устанавливать различные ограничения памяти для веб-запросов по сравнению с командной строкой. Если это так, у вас должно быть ограничение CLI 2Gи ограничение сети 768Mили меньше.
  3. Сам Magento пытается принудительно установить ограничение по умолчанию 768M по всем правилам через правила в .htaccessи pub/.htaccess:, php_value memory_limit 756Mи в .user.ini:memory_limit = 756M
  4. Страница « Требования к технологическому стеку », которую вы, вероятно, видели относительно минимума 2 ГБ, говорит об общей системной памяти , а не об ограничении памяти PHP. Если вы попытаетесь запустить Magento2 на виртуальном частном сервере с менее чем 2 ГБ ОЗУ (включая раздел подкачки), у вас будут плохие времена.
  5. Выделенная среда всегда будет лучше, чем виртуальный хостинг, но Magento2 работает на виртуальном хостинге. Magento активно работал с некоторыми распространенными хостинг-провайдерами, включая GoDaddy, чтобы сделать установку одним щелчком мыши реальностью. Есть также Magento-специализированные хосты, такие как Nexcess, которые обеспечивают более высокий уровень общего сервиса за несколько долларов.
Райан Херр
источник
Что касается пункта 4: цитата ОП из документа «Требуемые настройки PHP», а не требования к техническому стеку. devdocs.magento.com/guides/v2.1/install-gde/prereq/… Они рекомендуют тестировать и устанавливать с ограничением памяти 2 ГБ.
неопределенный срок
Я хотел бы добавить .user.iniв список файлов, которые Magento использует / создает для обеспечения этого ограничения. И в корне, и в pub/.
Барт Фридрихс
Рекомендуемая среда 2G значительно отличается от 2G на запрос! Я не могу представить, чтобы последний был жизнеспособным для загруженного сайта. И даже если PHP-операции командной строки потребляют 2G, это крайне неэффективный код.
MarkE