Magento 2.x PHP memory_limit requisitos

11

Noté que el manual de Magento 2.1 recomienda memory_limit=2Genphp.ini . Esa es una gran cantidad de memoria, ¿no está permitida esa memoria por solicitud HTTP? Dudo que haya algún proveedor de alojamiento que proporcione esa cantidad de memoria para los scripts PHP, y ciertamente hace que Magento no sea viable para el alojamiento compartido.

¿Es quizás una cantidad para la configuración y la migración? ¿Es esa cantidad realmente necesaria para la producción?

También encontré en la documentación:

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

No menciona recomendaciones de producción. ¿Qué se recomienda para la producción?

MarkE
fuente

Respuestas:

8

Como explica el fragmento de documentación que encontró, 2Ges el límite de memoria para cubrir todos los casos de uso posibles. Algunas operaciones (particularmente las operaciones de línea de comandos, como la configuración, las pruebas y la compilación) pueden requerir una cantidad considerable de memoria dependiendo del tamaño y la complejidad de su instalación.

Algunas cosas a tener en cuenta:

  1. memory_limites la cantidad máxima de memoria que una solicitud PHP dada puede tomar antes de que finalice. No es la cantidad total de memoria que tomará cada solicitud. En la práctica, la mayoría de las solicitudes de frente requerirán mucha menos memoria (probablemente 60 MB o menos para la mayoría de las páginas, categorías, productos de CMS), y algunos valores atípicos (pago) tomarán varias veces más dependiendo de las integraciones, personalización, etc.
  2. Algunos servidores le permiten establecer diferentes límites de memoria para solicitudes web en comparación con la línea de comandos. Si es así, debe tener un límite de CLI 2Gy un límite web de 768Mo menos.
  3. Magento mismo intenta imponer un límite predeterminado de 768M en todos los ámbitos, a través de reglas en .htaccessy pub/.htaccess: php_value memory_limit 756My en .user.ini:memory_limit = 756M
  4. La página de ' requisitos de pila de tecnología ' que probablemente vio con respecto a un mínimo de 2 GB habla de la memoria total del sistema , no del límite de memoria PHP. Si intenta ejecutar Magento2 en un servidor privado virtual con menos de 2 GB de RAM (incluido el intercambio), lo pasará mal.
  5. Un entorno dedicado siempre será mejor que el alojamiento compartido, pero Magento2 funciona en alojamiento compartido. Magento trabajó mucho con algunos proveedores de hosting comunes, incluido GoDaddy, para hacer realidad las instalaciones con un solo clic. También hay hosts especializados en Magento como Nexcess que proporcionan un mayor nivel de servicio compartido por unos pocos dólares más.
Ryan Hoerr
fuente
Con respecto al punto 4: la cita del OP del documento "Configuración de PHP requerida", no los requisitos de la pila de tecnología. devdocs.magento.com/guides/v2.1/install-gde/prereq/… Recomiendan probar e instalar con un límite de memoria de 2 GB.
indefinitedevil
Me gustaría agregar .user.inia la lista de archivos que Magento usa / crea para imponer este límite. Tanto en la raíz como en pub/.
Bart Friederichs
¡Un entorno 2G recomendado es significativamente diferente de 2G por solicitud! No puedo imaginar que este último sea viable para un sitio ocupado. E incluso si las operaciones de PHP en la línea de comandos consumen 2G, es un código extremadamente ineficiente.
MarkE