Magento 2.x requisitos de memory_limit do PHP

11

Notei que Magento manual de 2.1 recomenda memory_limit=2Gnophp.ini . É uma quantidade louca de memória, essa memória não é permitida por solicitação HTTP? Duvido que exista algum provedor de hospedagem que forneça essa quantidade de memória para scripts PHP e certamente torne o Magento inviável para hospedagem compartilhada.

Talvez isso seja uma quantia para configuração e migração? Essa quantidade é realmente necessária para a produção?

Eu também encontrei na documentação:

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

Não menciona recomendações de produção. O que é recomendado para produção?

MarkE
fonte

Respostas:

8

Como explica o trecho de documentação encontrado, 2Gé o limite de memória para cobrir todos os casos de uso possíveis. Algumas operações (particularmente operações de linha de comando, como configuração, teste e compilação) podem consumir uma quantidade substancial de memória, dependendo do tamanho e da complexidade da sua instalação.

Algumas coisas a serem observadas:

  1. memory_limité a quantidade máxima de memória que uma determinada solicitação PHP pode levar antes de ser finalizada. Não é a quantidade total de memória que cada solicitação levará. Na prática, a maioria das solicitações de frente ocupa muito menos memória (provavelmente 60 MB ou menos para a maioria das páginas, categorias, produtos CMS), com alguns outliers (checkout) demorando várias vezes mais, dependendo de integrações, personalização etc.
  2. Alguns servidores permitem definir limites de memória diferentes para solicitações da Web versus a linha de comando. Nesse caso, você deve ter um limite de CLI de 2Ge um limite da Web de 768Mou menos.
  3. Si Magento tenta impor um limite 768M padrão todo-o-board, através de regras em .htaccesse pub/.htaccess: php_value memory_limit 756Me em .user.ini:memory_limit = 756M
  4. A página ' requisitos da pilha de tecnologia ' que você provavelmente viu com um mínimo de 2 GB está falando sobre a memória total do sistema , não o limite de memória PHP. Se você tentar rodar o Magento2 em um servidor virtual privado com menos de 2 GB de RAM (incluindo swap), você terá um mau momento.
  5. Um ambiente dedicado sempre será melhor que a hospedagem compartilhada, mas o Magento2 funciona em hospedagem compartilhada. O Magento trabalhou extensivamente com alguns provedores de hospedagem comuns, incluindo o GoDaddy, para tornar realidade as instalações com um clique. Também existem hosts especializados em Magento, como o Nexcess, que oferecem um nível mais alto de serviço compartilhado por alguns dólares a mais.
Ryan Hoerr
fonte
Em relação ao ponto 4: a citação do OP do documento "Configurações necessárias do PHP", não os requisitos da pilha de tecnologia. devdocs.magento.com/guides/v2.1/install-gde/prereq/… Eles recomendam testar e instalar com um memory_limit de 2 GB.
indefinitedevil
Eu gostaria de adicionar .user.inià lista de arquivos que o Magento usa / cria para impor esse limite. Tanto na raiz e no pub/.
Bart Friederichs
Um ambiente 2G recomendado é significativamente diferente de 2G por solicitação! Não consigo imaginar o último viável para um site ocupado. E mesmo que as operações PHP da linha de comando consumam 2G, que é um código extremamente ineficiente.
9118 MarkE