marco zani: come dimensionare magento per raggiungere i key performance indicator desiderati
Post on 20-Jul-2015
309 Views
Preview:
TRANSCRIPT
Chi sono
2
MARCO ZANI – neen
• CEO e founder di neen, hosting company specializzata in managed hosting, high availability e Cloud: servizio fully managed con alto grado di automazione e industrializzazione, ma altrettanta capacità di personalizzazione e tuning.
• 15 anni di esperienza in servizi data center, hosting e Cloud.
• Competenze informatiche trasversali in ambito di programmazione, telecomunicazioni e Intelligenza Artificiale
• Ideatore di neen.do, il software di orchestration neen.
• Neener! Grande appassionato di tecnologia (specialmente opensource) e responsabile R&D in neen. Oggi molto impegnato nella promozione di diverse attività su Openstack, Docker e altre innovative soluzioni PaaS.
Di cosa parlerò
3
• Definizione del problema performance
• Indicatori di riferimento
• Un esempio realistico di stress test su Magento
• Strumenti e configurazioni per gli stress test
• Benchmark e analisi di alcuni test
• Conclusioni e spunti di riflessione
Magento KPI
4
Ancora performance ?
Performance = Velocità ?
5
Performance
6
(SLA) Service Level Agreement
Affidabilitàha hardware e applicativo, dimensionamento, sicurezza, deploynumero incidenti, tempo per accorgersene, tempo di risoluzione: SLA uptime
A volte è un trade-off:
Velocitàdimensionamento, tuning, cachingKPI: Key Performance Indicators (Quali SLA ?)
Prevenire, Monitorare, Intervenire
Velocità
7
Perché è importante ?
Amazon: 100 ms of extra load time caused a 1% drop in sales. (Source: Greg Linden, Amazon)
Yahoo!: 400 ms of extra load time caused a 5 to 9% increase in the number of people that clicked "back" before the page even loaded. (Source: Nicole Sullivan, Yahoo!)
Google: 500 ms of extra load time caused 20% fewer searches. (Source: Marrissa Mayer, Google)
“
“
“ “
“
“
Apdex
8
Application Performance Index
Is an open standard developed by an alliance of companies. It defines a standard method for reporting and comparing the performance of software applications in computing. Its purpose is to convert measurements into insights about user satisfaction, by specifying a uniform way to analyze and report on the degree to which measured performance meets user expectations.
Apdex
9
Metodo di calcolo
Apdex
10
Pregi e difetti
Contesto
11
Magento 1.9.0.1
• Ubuntu server• Nginx, php5-fpm, MySql• Installazione standard con i moduli required + HttpGzipModule• Disabilitate tutte le cache di Magento• Setup del plugin di Newrelic per analisi / monitoring• Sessioni e cache sul FS• Media nel database (tabella core_file_storage circa 550 MB)
• Web server (neencloud) : 4 vCore Intel 2Ghz, 4 GB Ram, 20 GB SSD• DB server (neencloud) : 2 vCore Intel 2Ghz, 4 GB Ram, 20 GB SSD
• Apdex T-value desiderato: 2 sec
Caching
12
La piramide rovesciata
Statistica 2013 / 200 clienti Agenzie
Deploy Automatici6%
Profiling PHP 14%
Sistemi di Caching 67%
Monitoraggio 100%
Magmi
13
Direct SQL Magento product import
N98-magerun
14
The swiss army knife for Magento
Siege
15
http load testing and benchmarking utility
Pregi
•Leggero e si installa velocemente•Si usa da command line tool, quindi si può usare senza GUI•Ottimo per fare un load testing veloce
Difetti
•Non ha GUI•Non clusterizzabile•Può dare risultati falsi per i limiti del sistema (ulimit, socket open)•Limiti sul path di navigazione per utente, login ecc.
Siege
16
Configurazione
Partiamo dalla sitemap
curl http://magento.dev.neen.it/sitemap.xml | cat sitemap.xml | sed 's/<loc>/<loc>\n/g' | sed 's/<\/loc>/\n/g' | grep http > urls.txt
Parametri
siege -i -c50 -t5m -d2 -f urls.txt
-c : numero di utenti concorrenti-t : per quanto tempo viene eseguito il benchmark-i : simula “internet”, randomizzando indirizzi-d : delay randomizzato tra 1 e N in secondi tra le richieste effettuate
Siege
17
Test incrementali
Bombardment o Bombardwrapper di siege
Parametri
bombardment [urlfile] [inital # of clients] [inc value] [# of inc] [delay] [timetorun]
Siege
18
Simulare navigazione da loggati
• Definendo login-url in siegerc
login-url = http://magento.dev.neen.it/customer/account/loginPost/ POST login[username]=jferri860263@example.org&login[password]=qKJ4tcaH
• Settando un Cookie permanente
Quindi dobbiamo fare noi il login e poi mettere il cookie come header,
Siege
19
Risultati
Apache Jmeter
20
Pregi
•Scritto in Java, quindi crossplatform•Si possono testare vari servizi (FTP, LDAP,POP), quindi non solo HTTP•Ecosistema esteso dei plugin•Clusterizzabile
Difetti
•Essendo scritto in Java, è abbastanza pesante•Può dare risultati falsi per i limiti del sistema (ulimit, socket open)•Curva di apprendimento elevata
Apache Jmeter
21
Alcuni concetti e parametri utili• Test Plan• WorkBench• Assertion (es: Response assertion)
• Thread Group• Numero dei thread• Ramp-up e periodo di Ramp-up• Numero di esecuzioni del test
• URL Patterns to include• Recording controller > Add > Listener > View Results in Table • Recording controller > Add > Listener > Summary Report
Jmeter
22
Video
Loadimpact
23
.. o altri applicativi commerciali (video)
Loadimpact
24
Grafico FLAT
Loadimpact
25
Grafico CRESCENTE
Loadimpact
26
Grafico ESPONENZIALE
CONFIGURAZIONE PHP5-FPM SOVRADIMENSIONATA
pm = dynamicpm.max_children = 100pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 50
New Relic / Zend server
27
Un sistema mal configurato
CONFIGURAZIONE PHP5-FPM CORRETTA
pm = dynamicpm.max_children = 8pm.start_servers = 2pm.min_spare_servers = 1pm.max_spare_servers = 4
New Relic / Zend server
28
Un sistema ben configurato
Test velocità assoluta
29
Scenario di 10 minuti
Effetto caching
30
Scenario di 10 minuti
Conclusioni
31
• Performance ≠ velocità
• Gli stress test vanno associati a dei sistemi di analisi per una corretta interpretazione dei dati
• Gli stessi sistemi di analisi ci possono aiutare nel monitoraggio dei KPI
• Ci sono performance migliorabili tunando le configurazioni degli application server, altri aumentando le risorse in gioco e/o con l’autoscaling, altri ancora aumentando risorse più specifiche (Es: MHz delle CPU)
• I sistemi di di caching, mascherano tutto questo, ma rientrano nel trade off pregi / difetti
32
GRAZIE! (anche a chi ha corso con noi la MEET MAGENTO RUN).
Follow us
33
facebook.com/neen.hosting
@neenhosting
linkedin.com/company/neen-srl
neen s.r.l.
Via Mecenate 76/20A - 20138 Milano
T: (+39) 02.45485420
E: info@neen.it
Web: www.neen.itBlog: neeners.neen.it
top related