Curs 4 Elemente de Dimensionare Si Optimizare Energo-economica
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati
-
Upload
meet-magento-italy -
Category
Presentations & Public Speaking
-
view
309 -
download
1
Transcript of Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati
![Page 1: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/1.jpg)
![Page 2: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/2.jpg)
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.
![Page 3: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/3.jpg)
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
![Page 4: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/4.jpg)
Magento KPI
4
Ancora performance ?
![Page 5: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/5.jpg)
Performance = Velocità ?
5
![Page 6: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/6.jpg)
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
![Page 7: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/7.jpg)
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)
“
“
“ “
“
“
![Page 8: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/8.jpg)
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.
![Page 9: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/9.jpg)
Apdex
9
Metodo di calcolo
![Page 10: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/10.jpg)
Apdex
10
Pregi e difetti
![Page 11: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/11.jpg)
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
![Page 12: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/12.jpg)
Caching
12
La piramide rovesciata
Statistica 2013 / 200 clienti Agenzie
Deploy Automatici6%
Profiling PHP 14%
Sistemi di Caching 67%
Monitoraggio 100%
![Page 13: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/13.jpg)
Magmi
13
Direct SQL Magento product import
![Page 14: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/14.jpg)
N98-magerun
14
The swiss army knife for Magento
![Page 15: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/15.jpg)
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.
![Page 16: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/16.jpg)
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
![Page 17: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/17.jpg)
Siege
17
Test incrementali
Bombardment o Bombardwrapper di siege
Parametri
bombardment [urlfile] [inital # of clients] [inc value] [# of inc] [delay] [timetorun]
![Page 18: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/18.jpg)
Siege
18
Simulare navigazione da loggati
• Definendo login-url in siegerc
login-url = http://magento.dev.neen.it/customer/account/loginPost/ POST login[username][email protected]&login[password]=qKJ4tcaH
• Settando un Cookie permanente
Quindi dobbiamo fare noi il login e poi mettere il cookie come header,
![Page 19: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/19.jpg)
Siege
19
Risultati
![Page 20: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/20.jpg)
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
![Page 21: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/21.jpg)
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
![Page 22: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/22.jpg)
Jmeter
22
Video
![Page 23: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/23.jpg)
Loadimpact
23
.. o altri applicativi commerciali (video)
![Page 24: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/24.jpg)
Loadimpact
24
Grafico FLAT
![Page 25: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/25.jpg)
Loadimpact
25
Grafico CRESCENTE
![Page 26: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/26.jpg)
Loadimpact
26
Grafico ESPONENZIALE
![Page 27: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/27.jpg)
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
![Page 28: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/28.jpg)
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
![Page 29: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/29.jpg)
Test velocità assoluta
29
Scenario di 10 minuti
![Page 30: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/30.jpg)
Effetto caching
30
Scenario di 10 minuti
![Page 31: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/31.jpg)
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
![Page 32: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/32.jpg)
32
GRAZIE! (anche a chi ha corso con noi la MEET MAGENTO RUN).
![Page 33: Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indicator desiderati](https://reader034.fdocuments.us/reader034/viewer/2022042716/55acb8541a28abd8318b459a/html5/thumbnails/33.jpg)
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
Web: www.neen.itBlog: neeners.neen.it