Requisiti di memory_limit di Magento 2.x PHP


11

Ho notato che il manuale di Magento 2.1 raccomanda memory_limit=2Ginphp.ini . È una quantità folle di memoria, non è consentita quella memoria per richiesta HTTP? Dubito che esista un provider di hosting che fornisca tale quantità di memoria per gli script PHP e certamente rende Magento non praticabile per l'hosting condiviso.

È forse un importo per l'installazione e la migrazione? Tale importo è davvero necessario per la produzione?

Ho anche trovato nella documentazione:

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

Non menziona raccomandazioni di produzione. Cosa è raccomandato per la produzione?

Risposte:


8

Come spiega lo snippet di documentazione che hai trovato, 2Gè il limite di memoria per coprire tutti i possibili casi d'uso. Alcune operazioni (in particolare operazioni da riga di comando come installazione, test e compilazione) possono richiedere una notevole quantità di memoria a seconda delle dimensioni e della complessità dell'installazione.

Alcune cose da notare:

  1. memory_limitè la quantità massima di memoria consentita da una determinata richiesta PHP prima che venga terminata. Non è la quantità totale di memoria che ogni richiesta richiederà. In pratica, la maggior parte delle richieste frontali richiederà molta meno memoria (probabilmente 60 MB o meno per la maggior parte delle pagine, categorie, prodotti CMS), con alcuni valori anomali (checkout) che richiedono molte volte di più a seconda di integrazioni, personalizzazione, ecc.
  2. Alcuni server consentono di impostare limiti di memoria diversi per le richieste Web rispetto alla riga di comando. In tal caso, è necessario disporre di un limite CLI 2Ge un limite Web pari 768Mo inferiore.
  3. Magento si cerca di imporre un limite predefinito 768 milioni across-the-board, tramite norme .htaccesse pub/.htaccess: php_value memory_limit 756Me in .user.ini:memory_limit = 756M
  4. La pagina " Requisiti dello stack tecnologico " che probabilmente hai visto per almeno 2 GB parla della memoria di sistema totale , non del limite di memoria PHP. Se si tenta di eseguire Magento2 su un server privato virtuale con meno di 2 GB di RAM (incluso lo scambio), ci si troverà in un brutto momento.
  5. Un ambiente dedicato sarà sempre migliore dell'hosting condiviso, ma Magento2 funziona sull'hosting condiviso. Magento ha lavorato a lungo con alcuni provider di hosting comuni tra cui GoDaddy per rendere le installazioni con un clic una realtà. Ci sono anche host specializzati in Magento come Nexcess che forniscono un livello più elevato di servizio condiviso per qualche dollaro in più.

Per quanto riguarda il punto 4: la citazione del PO dal documento "Impostazioni PHP richieste", non i requisiti dello stack tecnologico. devdocs.magento.com/guides/v2.1/install-gde/prereq/… Raccomandano di testare e installare con memory_limit da 2 GB.
indefinitedevil

Vorrei aggiungere .user.iniall'elenco dei file che Magento utilizza / crea per applicare questo limite. Sia nella radice che in pub/.
Bart Friederichs,

Un ambiente 2G consigliato è significativamente diverso da 2G per richiesta! Non riesco a immaginare che quest'ultimo sia praticabile per un sito affollato. E anche se le operazioni PHP dalla riga di comando consumano 2G, è un codice estremamente inefficiente.
MarkE
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.