Configuration système requise pour Magento2 PHP Memory Limit

16

Quelle est la configuration système requise de Magento 2 concernant la limite de mémoire PHP ( Resource Limits:)memory_limit ?

J'ai des problèmes pour trouver ces informations dans la configuration système requise, bien que la deuxième version candidate ait déjà été repoussée.

hakre
la source
Lorsqu'un système avec 2048M pour memory_limit a été examiné, le commentaire des commentateurs était "Pour vanilla Magento 1024M recommandé". C'est ca. Mi-octobre 2015.
hakre

Réponses:

14

Les exigences officielles du système (ou plutôt: les recommandations) sont les suivantes:

Augmentez la limite de mémoire PHP à au moins 768 Mo pour un fonctionnement normal ou 2 Go pour les tests.

Source: Recommandations pour CentOS et Ubuntu

Je ne l'augmenterais à une valeur plus élevée que si vous rencontrez des problèmes où la limite de mémoire est atteinte. Ensuite, déboguez et corrigez ces problèmes, puis redéfinissez la limite de mémoire sur normal en cas de succès.

Fabian Schmengler
la source
Mon travail cron ne fonctionne pas même si je mets la limite de mémoire à 768 Mo
Vasilii Burlacu
2
Donc? Quel genre de réponse attendez-vous de cela?
Fabian Schmengler
1
Je ne m'attends pas à une réponse à ce sujet, je viens d'informer que cron ne fonctionne pas même avec 768M. C'est ça. Cela peut être utile pour d'autres personnes qui lisent cette page.
Vasilii Burlacu
OK, désolé pour le malentendu. Mais bien sûr, cela dépend de ce que fait le cron. Certaines extensions peuvent nécessiter une optimisation.
Fabian Schmengler
3

En fait, cela memory_limitdépend entièrement de vous, vous devez voir comment votre application se comporte. Ne pas confondre avec les grands nombres. Tout script doit fonctionner aussi rapidement que possible et prendre pas plus de 3 à 4 fois sa mémoire par processus, ce qui représente 60 Mo x 4 = ~ 300 Mo en moyenne. A mon humble avis

768 Mo n'est qu'une précaution, donc votre serveur ne fondra pas ou ne répondra plus.

Dans certaines circonstances, cela peut aller au-delà, vous devez donc déboguer ces cas. configurez votre base de données et votre pile Web.

MagenX
la source
La limite de mémoire PHP est configurée par processus. Beaucoup de vos réponses ressemblent également à de la spéculation. Et la première phrase ne concerne que le cas où c'est moi qui peux le configurer, mais ce n'est pas à moi de décider quel que soit le cas, disons que la configuration par défaut de 128M Magento refusera de fonctionner. Avez-vous vérifié le numéro de béton 768M que vous donnez dans la réponse que cela fonctionne? Sur quelle spécification est basée votre calcul, pouvez-vous s'il vous plaît le référencer avec un lien hypertexte et en citer les parties sous-jacentes? Comment cela ajoute-t-il à la réponse donnée?
hakre
vous ne comprenez tout simplement pas - cela fonctionnera avec la valeur par défaut, vous pouvez même la définir, -1cela dépend simplement de votre code magento et de la configuration de la pile. vous devez vous y rendre pour trouver la bonne limite.
MagenX
Je vous demande pardon, mais je n'ai pas demandé comment configurer ou modifier la limite de mémoire PHP. J'en suis parfaitement conscient et comment ça marche. Je demande ce que le fournisseur du logiciel Magento Commerce version 2 spécifie comme limite de mémoire. Si vous définissez par exemple -1, mais que le système sur lequel Magento 2 fonctionne, par exemple, ne dispose que de 128 Mo, ce système ne correspondra certainement pas aux exigences du système. Même si vous définissez la limite de mémoire PHP à -1. Le point en question ici est la demande de référence. Dans votre réponse, vous ne donnez pas de référence spécifique à Magento 2.
hakre
je vous ai donné l'explication, cette valeur n'est pas constante ou donnée exacte jusqu'à un octet. de toute façon, si vous devez confirmer la configuration requise, vous devez écrire au support de magento.
MagenX
2

Magento 2 limite son utilisation de la mémoire à 768 Mo dans le fichier .htaccess principal: https://github.com/magento/magento2/blob/2335247d4ae2dc1e0728ee73022b0a244ccd7f4c/.htaccess#L40
Il s'agit de la limite PHP uniquement pour une seule requête HTTP. Si votre magasin doit servir 10 requêtes HTTP simultanément, vous avez besoin jusqu'à 10 * 768M = 7680M de mémoire pour l'interpréteur PHP uniquement (en réalité, il est beaucoup plus faible en raison de l'utilisation du cache, mais il existe des tâches gourmandes en mémoire comme la compilation, la réindexation, certaines intégrations de systèmes tiers qui désactivent parfois sa limite de mémoire et utilisent beaucoup de mémoire).
Vous avez également besoin de mémoire pour d'autres environnements logiciels: MySQL, serveur Web, logiciel de messagerie, système d'exploitation, etc.

Mage2.PRO
la source
1
10 requêtes HTTP simultanément alors vous avez besoin jusqu'à 10 * 768M = 7680M WHOA ... quel samedi matin ... si votre application prend jamais autant de mémoire, eh bien, je ne serais pas si sûr de la qualité de vos extensions. ..
MagenX
avez-vous déjà lu ce manuel ??? php.net/manual/en/ini.core.php#ini.memory-limit
MagenX