magento-ottimizzazione

Come rendere Magento più performante

Indice dei contenuti

magento_logo

Quello che vogliamo proporvi oggi è una configurazione di base per sfruttare al massimo le caratteristiche del server e per rendere Magento estremamente performante.

 

Si tratta di una configurazione essenziale, basata su un unico server, ideale per avere fin da subito ottimi risultati senza configurazioni complesse. Il consiglio è quello di utilizzare il server esclusivamente per Magento, senza ulteriori servizi che possano appesantire il server, come per esempio servizi di posta o altri applicativi web.

In questo articolo ci concentreremo esclusivamente sulle configurazioni particolari lasciando al lettore le configurazioni  più famose di cui è facile reperire documentazione e, nei prossimi articoli vi proporremo altre migliorie a tale configurazione.

La configurazione che proponiamo è basata sui seguenti software:

– Nginx;magento server schema
– PHP-FPM;
– MySQL 5.6;
– Memcache;
– APC.

Nginx: è un server web estremamente leggero e performante, lo consigliamo come alternativa ad Apache. La configurazione necessaria prevede la configurazione delle regole di rewrite direttamente nella configurazione del server; infatti Nginx non supporta il classico file .htaccess utilizzato da Apache. Nel sito ufficiale sono disponibili tutti i dettagli per la configurazione.

PHP-FPM: è una delle modalità di esecuzione del PHP più performante ed è estremanente consigliato per Magento in sostituzione agli storici mod_php e FastCGI.

MySQL: è il server database usato da Magento, consigliamo di prestare particolarmente attenzione alla versione utilizzata, in particolare è fondamentale utilizzare la versione 5.6 poichè è la più performante risultando più veloce fino al 30% rispetto MySQL 5.5 e precedenti.

Memcache: è un sistema di cache completamente in ram, lo andremo ad utilizzare per storare le sessioni e parte della cache; Per poterlo utilizzare è necessario installare il demone memcached sul server e attivare la relativa estensione su PHP, nella configurazione utilizzare almeno 128MB di ram.

APC: è un estensione di PHP che fornisce una cache di opcode e permette di ottimizzare il codice, dopo aver installato l’estensione consigliamo di utilizzare la seguente configurazione:

apc.enabled=1
apc.shm_size=512M
apc.num_files_hint=10000
apc.user_entries_hint=10000
apc.max_file_size=5M
apc.stat=0
apc.optimization=0
apc.shm_segments=1
apc.enable_cli=1
apc.cache_by_default=1
apc.include_once_override=1

La configurazione delle sessioni su Memcache deve essere eseguita sul file app/etc/local.xml sostituendo la configurazione delle sessioni con:

<session_save><![CDATA[memcache]]></session_save>
<session_save_path>
    <![CDATA[tcp://127.0.0.1:11211?persistent=1&weight=2&timeout=10&retry_interval=10]]>
</session_save_path>

Per la cache utilizzeremo un sistema a due livelli, come backend veloce useremo APC e come backend lento Memcache, la configurazione deve essere sempre eseguita nel file app/etc/local.xml inserendo il codice nel blocco <global>

<cache>
<backend>Apc</backend>
<slow_backend>Memcached</slow_backend>
<fast_backend>Apc</fast_backend>
<slow_backend_options>
<servers>
<server>
<host><![CDATA[127.0.0.1]]></host>
<port><![CDATA[11211]]></port>
<persistent><![CDATA[1]]></persistent>
</server>
</servers>
<compression><![CDATA[]]></compression>
<cache_dir><![CDATA[]]></cache_dir>
<hashed_directory_level><![CDATA[]]></hashed_directory_level>
<hashed_directory_umask><![CDATA[]]></hashed_directory_umask>
<file_name_prefix><![CDATA[]]></file_name_prefix>
</slow_backend_options>

<memcached>
<servers>
<server>
<host><![CDATA[127.0.0.1]]></host>
<port><![CDATA[11211]]></port>
<persistent><![CDATA[1]]></persistent>
</server>
</servers>
<compression><![CDATA[]]></compression>
<cache_dir><![CDATA[]]></cache_dir>
<hashed_directory_level><![CDATA[]]></hashed_directory_level>
<hashed_directory_umask><![CDATA[]]></hashed_directory_umask>
<file_name_prefix><![CDATA[]]></file_name_prefix>
</memcached>
</cache>

Per approfondire riguardo il sistema di cache qui trovate tutti i dettagli.

Potete testare una installazione di test con tale configurazione qui: http://magento1.seeweb.it. Se avete dubbi o volete approfondire l’argomento saremo lieti di rispondere alle vostre domande.

CONDIVIDI SUI SOCIAL

3 risposte

  1. Memcache a apc sono tra le meno indicate come cache backend. Quello che (sembra) guadagni lo perdi quando deve ricostruire la cache..sai che nè apc nè memcache supportano le tags di magento.
    Mai provato Redis?

  2. Grazie della precisazione Simone, riguardo Redis avevamo in programma di parlarne in un articolo dedicato dato che è supportato nativamente solo nelle ultime versioni ed è una configurazione leggermente più evoluta.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

59 + = 63