Presentiamoci
Fabrizio Balliano
@fballiano
Sviluppatore PHP dal 1999
In Magento dal 2007
MCD - MCFD - MCSS
Admin di magento.com/it
Full time Magento dal 2011
CTO di Sevenlike S.r.l.
Il progetto
200.000 prodotti
100 attributi prodotto
120.000 clienti
150.000 ordini
10.000 visitatori unici giornalieri
Il progetto
61 mercati
61 website
76 store view
Il PROGETTO
Spazio disco occupato: 112GB
Dimensione DB: 12GB
Il progetto
Uno sguardo al DB
Nome tabella
Numero record
cataloginventory_stock_status
15.000.000
catalog_product_entity_decimal
13.500.000
catalog_product_entity_int
12.000.000
catalog_product_website
9.500.000
INFRASTRUTTURA
server fisici
vs
cloud
STACK SOFTWARE
Magento Enterprise 1.13
Ubuntu 12.04 LTS
Apache 2.2
PHP 5.3
MySQL 5.5
APC
Varnish 3.0
Redis 2.8
DIAGRAMMA DI RETE
macchine di frontend
Apache + mod_php
vs
nginx + php-fpm
Apache + mod_php
facilità di configurazione
htaccess
performance
consumo ram
thread safety
nginx + php-fpm
performance
consumo ram
thread safety
difficoltà di configurazione
timeout multipli
htaccess
ANd the winner is
Apache + mod_php
Livelli di cache
Opcode PHP
Cache Magento
Full page cache (FPC)
OPCODE CACHE
APC
apc.num_files_hint
40000
apc.shm_size
256M
CACHE MAGENTO
1 level
vs
2 levels
CACHE MAGENTO
Istanza dedicata di Redis
FulL page cache
Varnish
Nexcess Turpentine
Direttamente sul load balancer
TTL
GEOGRAFIA?
Pruning FPC geografico
Varnish &
store url univoche
http://example.com/en/product.html
http://us-en.example.com/product.html
http://example.com/us/en/product.html
Differenze SEO?
Asset statici
Istanza barebone di apache
Cache gestita da Varnish
Ottimizzazioni
Compilatore Magento?
OTTIMIZZAZIONI
php.ini
realpath_cache
memory_limit
OTTIMIZZAZIONI
my.cnf
innodb_file_per_table
innodb_buffer_pool_size
query_cache_limit
query_cache_size
key_buffer
OTTIMIZZAZIONI
my.cnf
mysqltuner.pl
SESSIONI
Oltre 10.000 sessioni generate giornalmente
SESSIONI: PROBLEMI
File di sessioni salvati in un'unica cartella
Se la docroot è sotto NFS anche "var" è sotto NFS
Problemi di sincronizzazione "var/session" via NFS
SESSIONI: SOLUZIONE
Cm_RedisSession
Incluso in EE 1.13
FLOSS su github
Istanza dedicata di Redis
ALtro
Flat catalog category
Flat catalog product
Log su database
Log su "var/log"
limiti riscontrati
Reindex incrementale
Presente da Magento EE 1.13
Dimensione tabelle di changelog
Invalida le cache
Reindex totale Magento EE 1.13
50% più veloce di Magento EE 1.12
Catalog rules
Import prodotti
Spazi di miglioramento
APC stat
on => off
PHP
5.3 => 5.4 => 5.5
APC => Opcache
MySQL
5.5 => 5.6
Scalabilità
Separazione servizi
Cache server dedicati
Rimozione NFS per la docroot
Storage dedicato solo
per /media
Macchina dedicata per il backend Magento
MySQL slave
Monitoring
New Relic
Grazie!!!
http://fabrizioballiano.it
http://twitter.com/fballiano
http://linkedin.com/in/fabrizioballiano
http://www.sevenlike.com
Made with Slides.com