Magento è una piattaforma di e-commerce incredibilmente potente. In questa miniserie impareremo come iniziare con la piattaforma, conoscere i termini, impostare un negozio e tutti gli aspetti correlati e imparare finalmente come personalizzarlo per renderlo nostro.
In questa parte finale, affronteremo uno dei più grandi reclami che le persone hanno con Magento: le sue prestazioni. Esamineremo una serie di metodi diversi che potresti applicare per potenziare significativamente la piattaforma. Eccitato? Iniziamo!
Nelle ultime parti, abbiamo preso uno sguardo di alto livello su come i temi di Magento sono messi insieme, i componenti che lo guidano e come tutto funziona insieme per creare un tema di lavoro insieme a un rapido sguardo a una serie di metodi API che Magento espone. Abbiamo anche preso in considerazione, passo dopo passo, cosa è il multi store Magento, come può aiutarti e infine come impostarlo.
Le prestazioni di Magento sono un'area in cui gli utenti si lamentano costantemente. Non molto è vero, ma ci sono una miriade di modi diversi per migliorare le prestazioni, ovviamente. Oggi daremo un'occhiata ai modi per migliorare drasticamente le prestazioni della tua installazione di Magento. So che sembra interessante e hai voglia di iniziare.
Nota rapida prima di iniziare comunque. La maggior parte delle modifiche e / o delle ottimizzazioni menzionate qui saranno solo quelle: menzioni. Probabilmente dovresti cercare su google per l'implementazione dal momento che l'implementazione stessa richiede un tutorial di dimensioni ragionevoli. Con quello fuori mano, iniziamo!
Questo è l'aspetto più critico della tua installazione di Magento. Magento può essere eseguito su un host condiviso ma attenzione, le prestazioni non saranno ottimali. Magento richiede davvero più energia di quella che può fornire un run of the mill che l'host condiviso può mostrare e quando lo fai girare su uno.
Un VPS o un server dedicato è l'ideale quando si tratta di Magento. E ricorda di non lesinare sulla memoria perché ne avrai bisogno. Un sacco.
Lasciare Magento in cache alcune parti del suo codice base è una delle poche cose che dovresti fare quando inizi a ottimizzare un'installazione. Non è necessario abilitare la cache per tutto, ma suggerirei layout e bloccare l'output HTML come elementi essenziali. Con questa memorizzazione nella cache abilitata, a seconda delle dimensioni del sito, è possibile prevedere un drastico calo del tempo di caricamento.
Tieni presente che dovrai disattivare la memorizzazione nella cache durante lo sviluppo. Se stai apportando modifiche al tuo codice e non riesce a riflettere nel front-end, il colpevole è il caching. Un punto così ovvio ma è stata la causa di così tanti capelli che tirano durante lo sviluppo.
Dopo aver abilitato la memorizzazione nella cache, ora puoi fare un ulteriore passo avanti. Magento memorizza nella cache le informazioni utilizzando un sistema di archiviazione basato su file. Mentre questo è il modo più affidabile, ci sono spesso momenti in cui vuoi la massima velocità. In questi casi, dovresti esaminare l'implementazione di un sistema di memorizzazione nella cache basato sulla memoria.
Ci sono un certo numero di opzioni disponibili e le persone hanno avuto un grande successo con loro. eAccelerator è il mio strumento di scelta in questi giorni. Ricordati solo di configurarlo con sufficiente memoria o potrebbe dover eliminare i dati durante i momenti più inopportuni.
Se sei su un VPS o su un server dedicato, cerca di disabilitare le estensioni PHP non essenziali. Magento ha bisogno solo di una mancia come PDO_MySQL quindi sentiti libero di disabilitare quelli estranei.
Inoltre, ci sono 2 modifiche che si tradurrà in prestazioni migliori.
Di default, PHP è configurato per utilizzare una quantità di memoria assurdamente bassa. Avrai bisogno di aumentare questo. Puoi farlo aggiungendo la seguente riga al file di configurazione:
php_value memory_limit 512M
Il secondo è modificando il realpath_cache valore a così.
realpath_cache_size = 1M realpath_cache_ttl = 86400
Questo è più di un argomento generale di uno specifico di Magento, quindi sarò breve qui. Ci sono un certo numero di moduli Apache che dovrai abilitare e / o configurare per migliorare le prestazioni del tuo negozio.
Il primo è mod_deflate. Ciò consente di comprimere drasticamente l'output dal server, migliorando le prestazioni. Sicuramente un modulo che deve essere abilitato.
In secondo luogo, esaminare mod_expires. Questo modulo consente al browser di memorizzare nella cache risorse specifiche per un determinato periodo di tempo, in modo che i visitatori di ritorno abbiano un'esperienza più snella.
E infine, keepalives. Ciò consente connessioni persistenti creando sessioni di lunga durata che consentono di instradare più richieste attraverso la stessa connessione TCP. Questo aiuta quando hai un numero di piccole risorse nella tua pagina.
Ricordarsi di ricostruire periodicamente gli indici per le tabelle attraverso il back-end. Questo è un punto essenziale che si tradurrà in un aumento notevole delle prestazioni del tuo negozio.
Tieni presente che ricostruire gli indici è un affare molto costoso, in termini di risorse e dovrebbe essere fatto durante le ore libere. Fare questo durante un'attività anche moderata sul tuo negozio peggiorerà significativamente le prestazioni e la reattività del negozio.
L'interprete PHP deve leggere ogni file dal disco e compilarlo su ogni richiesta, qualcosa che è estremamente affamato di CPU se si considera la dimensione di Magento. In questi casi, è altamente raccomandato un acceleratore PHP come APC o eAccelerator.
Strumenti come questi aumentano in modo significativo le prestazioni del codice PHP memorizzando il codice nel codice byte intermedio e viene servito invece di chiedere all'interprete di compilarlo ogni volta.
Questa è un'estensione del punto notato poco sopra. Magento memorizza molte informazioni [non solo il DB] nel disco fisso del server che, come sapete, è il collegamento più lento della catena. Ciò include cache, informazioni sulla sessione e così via. Se si desidera migliorare le prestazioni in quest'area, il modo migliore per andare avanti consiste nell'implementare un file system basato sulla memoria per assicurarsi che tutti i dati siano memorizzati in memoria anziché costose chiamate al disco rigido.
Dato che non abbiamo lo spazio qui, ti indicherò la giusta direzione. Quello che devi fare è impostare una partizione tmpfs che si occupi della tua sessione e delle directory della cache. Questi possono essere trovati sotto /var/www/domain.com/var/sessions/ e /var/www/domain.com/var/cache/ rispettivamente.
Il modulo di catalogo front end piatto crea tabelle di database aggiuntive per archiviare i dati in un formato piatto / lineare. Questo modulo è disponibile per entrambi i dati di categoria e prodotto, quindi sentiti libero di abilitarlo in modo indipendente come richiesto dal tuo caso d'uso.
Abilitare questo modulo è consigliato solo per i grandi magazzini. Gli archivi con un piccolo catalogo dovrebbero sicuramente stare alla larga poiché l'attivazione di questo potrebbe non fornire un aumento di prestazioni sufficiente a garantirne l'utilizzo e potrebbe ridurre le prestazioni. Prendi una decisione attentamente ponderata qui.
Il back-end di Magento è significativamente più ricco di risorse rispetto al front end poiché deve gestire molte più informazioni. E una volta che il tuo negozio ha raggiunto una certa soglia rispetto al numero di prodotti, ad esempio 5.000, inizia davvero a tassare il server.
Avere un server di amministrazione dedicato può aiutare a fare in modo che il pannello di amministrazione ottenga i cicli della CPU di cui ha bisogno influenzando negativamente le prestazioni del resto del sito.
Il tema Magento predefinito è un ottimo punto di partenza, ma non è davvero il più efficiente. Lasciami elaborare. Il tema predefinito è progettato per mostrare tutte le funzionalità di Magento e, quindi, raggruppa tutte le funzionalità di Whiz. Ricorda che Magento costruisce una pagina attraverso l'analisi del layout che specifichiamo e quindi il tempo di generazione della pagina è direttamente correlato al numero di blocchi che usi in una pagina.
Pertanto, quando si crea il proprio tema, evitare layout inutilmente complessi, semplificare e / o combinare i blocchi più piccoli per ridurre i cicli della CPU necessari per il rendering del codice della pagina.
Magento ha un elegante sistema in grado di includere / escludere programmaticamente fogli di stile e file JavaScript nei temi. Molti autori di temi sembrano ignorare completamente questo sistema semplicemente includendo questi elementi manualmente nel template HTML. Questo è sbagliato.
Il modo giusto per includere queste risorse è mostrato di seguito:
Usando il codice sopra nei file di layout, Magento combina i file JS in un singolo file e viene servito al browser in una singola richiesta.
Anche qui si applicano le regole per l'ottimizzazione di siti o applicazioni normali. I browser in genere limitano il numero di download da un dominio a 2-5, il che è molto limitante quando si carica un tema ricco di contenuti multimediali con un numero di piccole risorse. Ci sono un certo numero di semplici modi per uscire da questo
Il primo e più semplice è qualcosa che tutti conoscono: sprite. Usando gli sprite, puoi minimizzare il numero di richieste simultanee generate dal tuo tema.
Questo approccio potrebbe non funzionare in tutti i casi. E se il tuo tema avesse un sacco di script, video e quant'altro? Questi non dovrebbero bloccare il caricamento del resto della pagina. In questi casi, è sufficiente creare un sottodominio per le risorse statiche e indirizzare l'installazione di Magento alla risorsa.
La registrazione è essenziale ma è anche dispendiosa poiché è necessario scrivere sul disco. Magento, in generale, è molto loquace quando si tratta di logging e presto sarai al ginocchio in file di registro molti dei quali non ti serviranno.
La soluzione qui è disabilitare tutte tranne le parti essenziali. Hai abilitato la registrazione delle query lente sul tuo server di produzione? Spegnilo, adesso! Le query lente devono essere esaminate e corrette prima della distribuzione. Ha il suo posto in un server di sviluppo, non in un server di produzione.
Questo è un altro consiglio essenziale che molte persone continuano a dimenticare. Che si tratti della versione di PHP, mySQL o Magento, le versioni più recenti offrono una velocità e una stabilità sostanziali che non puoi assolutamente perdere.
Specialmente nel caso di Magento, anche ogni mini aggiornamento corregge una serie di problemi di prestazioni e correzioni di bug, purché il ramo sia etichettato come stabile, aggiornamento!
Magento ha un modulo compilatore spiffy che promette ovunque tra un 25% -50% di accelerazione. Come suggerisce il nome, questo modulo compila tutti i file Magento e quindi porta a prestazioni migliori.
Nota che questo modulo è ancora in beta e supporta solo build 1.3x. Questo dovrebbe essere pronto presto, quindi tieni a mente anche questo punto.
Fooman Speedster è una potente estensione che può dare al tuo negozio una bella spinta in termini di prestazioni. Funziona combinando, minimizzando, comprimendo e memorizzando nella cache i tuoi file JavaScript e CSS. Oltre a ciò, abilita anche la compressione GZIP per il resto dello store.
Tutto sommato, significa meno dati vengono inviati e meno richieste che è una vittoria netta in qualsiasi modo tu la veda. Funziona con tutte le principali versioni di Magento ed è sicuramente un must per qualsiasi negozio.
Un'altra cosa che dovresti fare periodicamente per migliorare le prestazioni. Dovrai riparare il tuo database, se necessario, e poi ottimizzarlo. Puoi farlo tramite il tuo host CPanel, phpMyAdmin o semplicemente i comandi della shell. Ecco un link rapido che ti guida attraverso il processo usando phpMyAdmin.
E abbiamo finito! Oggi abbiamo dato un'occhiata a diversi modi per migliorare le prestazioni di Magento. Spero che questo ti sia stato utile e l'hai trovato interessante. Sono sicuro di aver perso un certo numero di punti qui, quindi sentiti libero di esprimere i commenti con i suggerimenti che hai utilizzato.
Domande? Belle cose da dire? Critiche? Colpisci la sezione dei commenti e lasciami un commento. Buona programmazione!