marco zani: come dimensionare magento per raggiungere i key performance indicator desiderati

Post on 20-Jul-2015

309 Views

Category:

Presentations & Public Speaking

1 Downloads

Preview:

Click to see full reader

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