Performance tuning di Magento

Magento è probabilmente il miglior CMS attualmente disponibile se dovete creare un business online, tuttavia se avete già realizzato il vostro sito di ecommerce con Magento avrete notato (specie se il sito poggia su un hosting condiviso) che le performance sono tutt’altro che buone.

Quando realizziamo un sito di ecommerce le prestazioni sono a dir poco fondamentali, è dimostrato infatti che questo è uno dei punti chiave che ci permettono di non perdere il virtuale cliente.

Per ottimizzare al massimo la velocità di Magento dobbiamo intervenire in diversi punti, a partire dal pannello di amministrazione di Magento, al file .htaccess e per finire sulla configurazione di Apache e di MySQL.

Ecco le impostazioni da fare nel pannello di amministrazione di Magento:

  • Sistema > Configurazione > Sviluppatore > Log Setting > Enabled = NO
  • Sistema > Configurazione > Catalogo > Frontend > Use Flat Catalog Category = Yes
  • Sistema > Configurazione > Catalogo > Frontend > Use Flat Catalog Product = Yes
  • Sistema > Configurazione > Sviluppatore > Javascript Setting > Merge JavaScript Files = TRUE
  • Sistema > Configurazione > Sviluppatore > CSS Setting > Merge CSSFiles = TRUE
  • Sistema > Strumenti > Compilation > Esegui processo di compilazione
  • Sistema > Gestione della cache > Abilitare la cache su ogni voce
  • Sistema > Gestione indice > Abilitare tutti gli indici

Inoltre è necessario decommentare alcune righe presenti presenti nel file .htaccess, come segue:

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

# Insert filter on all content
SetOutputFilter DEFLATE

# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# Don't compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary

############################################
## enable resulting html compression
php_flag zlib.output_compression on
###########################################

Potrete ulteriormente ottimizzare le performance se siete su un VPS configurando al meglio Apache:
Disattivate tutti i moduli superflui che Apache carica nel file httpd.conf commentandoli con un # davanti, esempio:

# LoadModule foo_module modules/mod_foo.so
# LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so

Abilitate il KeepAlive impostandone i timeout come segue:

KeepAlive On
KeepAliveTimeout 2
MaxKeepAliveRequests 200

Ottimizzate il timeout di Apache riducendolo per ridurre gli effetti di un attacco DOS.

Timeout 120

Ottimizzare il DB di MySQL andando a cambiare il file my.cnf come segue:

key_buffer = 384M
max_allowed_packet = 1M
table_cache = 1024
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 16
query_cache_type = 1
query_cache_size = 48M
log_slow_queries=/var/log/mysqld.slowquery.log
max_connections=500
wait_timeout=120
tmp_table_size = 64M
max_heap_table_size = 64M
innodb_buffer_pool_size = 2048M
innodb_additional_mem_pool_size = 20M

Se tuttavia il vostro sito vi risulta ancora lento, dovrete aumentare le prestazioni del server dove lo hostate.

Rispondi

Leggi articolo precedente:
Il protocollo DNS

L'operazione di conversione da nome a indirizzo IP è detta risoluzione DNS, la conversione da indirizzo IP a nome è...

Chiudi