Presentiamoci
Fabrizio Balliano
@fballiano
Sviluppatore PHP dal 1999
In Magento dal 2007
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
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
5.3 => 5.4 => 5.5
APC => Opcache
MySQL
5.5 => 5.6
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
Grazie!!!
Magento on steroids
By Fabrizio Balliano
Magento on steroids
Portiamo assieme Magento al massimo per un grande progetto di e-commerce internazionale. Speech preparato per il Meet Magento 2014 Italia.
- 2,691