Top Banner
Bologna 26/27 Novembre 2010 Novotel fiera Bologna Spingere al massimo le prestazioni di TYPO3 Relatore: Mauro Lorenzutti T3Camp Italia Il primo evento italiano dedicato a TYPO3
40

Typo3 prestazioni

May 19, 2015

Download

Technology

Le slide della presentazione tenuta al T3Camp Italia su come ottimizzare le prestazioni di TYPO3
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Typo3 prestazioni

Bologna 26/27 Novembre 2010Novotel fiera Bologna

Spingere al massimo le prestazioni di TYPO3Relatore: Mauro Lorenzutti

T3Camp ItaliaIl primo evento italiano dedicato a TYPO3

Page 2: Typo3 prestazioni

Pag. 2 http://www.t3campitalia.it/Pag. 2

Mauro Lorenzutti

� CTO di Webformat

� Sviluppatore e consulente TYPO3 dal 2004

� TYPO3 Certified Integrator dal 2009

� Sviluppatore di numerose estensioni, tra cui:

� DB Integration (wfqbe)

� Webformat Shop System (extendedshop)

� TYPO3-Alfresco Connector (alfresco)

� Contacts:� [email protected]

� www.webformat.com

Page 3: Typo3 prestazioni

Pag. 3 http://www.t3campitalia.it/Pag. 3

Questo talk non parla di…

� Ottimizzazione lato server

� Load Bilancing

� Clustering

� Ecc.

� Configurazioni di

� Apache

� PHP

� MySQL

Page 4: Typo3 prestazioni

Pag. 4 http://www.t3campitalia.it/Pag. 4

Ma parleremo di…

� Introduzione

� I 4 livelli di caching di TYPO3

� Comparazione prestazioni

� Il nuovo framework di caching

� Ottimizzare le prestazioni – oltre TYPO3

� Conclusioni

Page 5: Typo3 prestazioni

Pag. 5 http://www.t3campitalia.it/Pag. 5

Mai sentito dire?

� Devo scegliere un CMS ma ho sentito che TYPO3 è lento e pesante

� Ho visto delle comparazioni di prestazioni tra TYPO3, Drupal, Joomla, Wordpress ecc. e TYPO3 ne usciva male

� Ho un sito con migliaia di pagine e milioni di visitatori al mese, non credo che un CMS open-source possa reggere…

Page 6: Typo3 prestazioni

Pag. 6 http://www.t3campitalia.it/Pag. 6

TYPO3 vs Drupal vs Joomla

� http://blogs.helion-prime.com/2008/05/19/typo3-joomla-and-drupal-cmss-performance-testing.html

Page 7: Typo3 prestazioni

Pag. 7 http://www.t3campitalia.it/Pag. 7

Considerazioni

� Sorvoliamo sull'opportunità di confrontare TYPO3 con Wordpress e Joomla…

� Il test di prestazioni è stato svolto con il motore di caching disabilitato

Caching functionally:

turned off for Drupal, Joomla!, and Typo3;

� Quando scegliete un auto, è più importante quanti km/h riuscite a fare in prima marcia, oppure quanto comodamente viaggiate alla velocità massima (consentita, ovviamente ;-)?

Page 8: Typo3 prestazioni

Pag. 8 http://www.t3campitalia.it/Pag. 8

Cache si / cache no

� Il modulo di caching è fondamentale in un CMS

� Il confronto delle prestazioni di due CMS non può essere fatto con i moduli di cache disabilitati

� Vediamo quindi come sfruttare al meglio la cache di TYPO3

Page 9: Typo3 prestazioni

Pag. 9 http://www.t3campitalia.it/Pag. 9

Scaletta

� Introduzione

� I 4 livelli di caching di TYPO3

� Comparazione prestazioni

� Il nuovo framework di caching

� Ottimizzare le prestazioni – oltre TYPO3

� Conclusioni

Page 10: Typo3 prestazioni

Pag. 10 http://www.t3campitalia.it/Pag. 10

I 4 livelli di caching

� Possiamo individuare 4 diversi livelli di caching in TYPO3, tre nativi del CMS:

� Cache disattiva…

� Cache parziale su DB

� Cache totale su DB

� Ed uno ottenibile mediante moduli aggiuntivi:

� Cache su file fisico

Page 11: Typo3 prestazioni

Pag. 11 http://www.t3campitalia.it/Pag. 11

Cache disattiva

� Ogni richiesta della pagina viene servita da TYPO3 costruendo l’output da zero

� Non ci sono ottimizzazioni

� Anche se la pagina non cambia nel tempo, TYPO3 la rigenera ad ogni richiesta

� Quando viene disattivata la cache:

� index.php?id=123&no_cache=1

� config.no_cache = 1

� Opzione “no cache” nelle proprietà della pagina

Page 12: Typo3 prestazioni

Pag. 12 http://www.t3campitalia.it/Pag. 12

Cache parziale su DB

� TYPO3 genera una cache parziale della pagina e la salva su DB

� Alle prossime richieste verrà restituita la pagina presa dalla cache e verranno generati ex-novo solo i contenuti di tipo USER_INT

� Utile per quei contenuti che non possono essere messi in cache:

� Carrello elettronico

� Ricerca

� Visualizzazione di dati in tempo reale

� Form di inserimento dati

� ...

Page 13: Typo3 prestazioni

Pag. 13 http://www.t3campitalia.it/Pag. 13

Cache totale su DB

� Tutti i contenuti della pagina possono essere messi in cache (USER)

� TYPO3 genera la pagina e la salva su DB

� Alla prossima richiesta, TYPO3 restituisce la pagina presente in cache

� Nessun'altra operazione è necessaria

� Il parametro cHash serve a distinguere versioni diverse della stessa pagina messa in cache

� cHash=115850ad73f8db47fb263a56614f68bc

Page 14: Typo3 prestazioni

Pag. 14 http://www.t3campitalia.it/Pag. 14

Cache su file fisico

� E se invece di salvare la pagina su DB la scriviamo direttamente su file?

� Alla prima richiesta TYPO3 genera la pagina e scrive un file HTML su disco

� Le prossime richieste vengono gestite da Apache senza istanziare TYPO3 né PHP

� Richiede mod_rewrite

� Meglio se con realurl

� Solo per contenuti USER

� Solo per pagine che possono essere messe completamente in cache

Page 15: Typo3 prestazioni

Pag. 15 http://www.t3campitalia.it/Pag. 15

Scaletta

� Introduzione

� I 4 livelli di caching di TYPO3

� Comparazione prestazioni

� Il nuovo framework di caching

� Ottimizzare le prestazioni – oltre TYPO3

� Conclusioni

Page 16: Typo3 prestazioni

Pag. 16 http://www.t3campitalia.it/Pag. 16

Test di prestazioni

� Quanto è importante sfruttare al meglio la cache di TYPO3?

� Facciamo un test!

� Apache Benchmark:

ab -c 10 -n 1000 http://www.test.it/news.html

ATTENZIONE: questo test ha il solo scopo di dimostrare come un uso corretto della cache permetta di ottenere miglioramenti importanti nelle prestazioni, i risultati dei test che seguono devono essere considerati come un riferimento / ordine di grandezza

Page 17: Typo3 prestazioni

Pag. 17 http://www.t3campitalia.it/Pag. 17

L'ambiente del test

� Macchina virtuale VmWare

� CPU: 1GHz

� RAM: 512GB

� Sistema operativo: GNU Linux / Ubuntu

� Apache 2.2.14

� Mysql 5.1.41

� PHP 5.3.2

� TYPO3 4.4.4

� tt_news 3.0.1

Page 18: Typo3 prestazioni

Pag. 18 http://www.t3campitalia.it/Pag. 18

Tempo richiesto per il test

0

50

100

150

200

250

300

350

400

450

No cache Parziale DB Fisica

Sec

on

di

PHP

eAccelerator

Page 19: Typo3 prestazioni

Pag. 19 http://www.t3campitalia.it/Pag. 19

Richieste per secondo

1

10

100

1000

10000

No cache Parziale DB Fisica

Sec

on

di

PHP

eAccelerator

Page 20: Typo3 prestazioni

Pag. 20 http://www.t3campitalia.it/Pag. 20

Utilizzo della CPU

0%

10%

20%

30%

40%

50%

60%

70%

80%

No cache Parziale DB Fisica

PHP

eAccelerator

Page 21: Typo3 prestazioni

Pag. 21 http://www.t3campitalia.it/Pag. 21

Risultati

� Possiamo notare che le prestazioni variano in media come segue (e senza acceleratore PHP i risultati sono ancora più clamorosi):

� Passare da no_cache a cache parziale su DB: +275%

� Passare da cache parziale a cache totale su DB: +400%

� Passare da cache totale su DB a cache su file fisico: +300%

� Passare da no_cache a cache su file fisico: +3300%

� L’uso di un acceleratore PHP consente di:

� Aumentare il numero di pagine servite al secondo tra l’80% e il 300%

� Diminuire il consumo di CPU tra il 15% e il 50%

Page 22: Typo3 prestazioni

Pag. 22 http://www.t3campitalia.it/Pag. 22

TYPO3 4.2 vs TYPO3 4.4

0

50

100

150

200

250

300

350

400

450

500

No cache Parziale DB Fisica

seco

nd

i 4.2

4.4

Page 23: Typo3 prestazioni

Pag. 23 http://www.t3campitalia.it/Pag. 23

La cache è importante!

� Il tuning delle performance deve necessariamente partire da:

� Sostituire le estensioni USER_INT con estensioni USER

� Ottimizzare il codice delle estensioni USER_INT

� Ottimizzare il codice delle estensioni USER per le pagine la cui cache viene aggiornata molte volte

� Attivare la cache su file fisico

� L’admin panel è vostro amico! Vi consente di:

� Analizzare tutte le query

� Valutare i tempi di esecuzione

� Trovare i colli di bottiglia (o perlomeno di isolare il codice responsabile…)

� Config.admPanel = 1

Page 24: Typo3 prestazioni

Pag. 24 http://www.t3campitalia.it/Pag. 24

L’admin panel

Page 25: Typo3 prestazioni

Pag. 25 http://www.t3campitalia.it/Pag. 25

Scaletta

� Introduzione

� I 4 livelli di caching di TYPO3

� Comparazione prestazioni

� Il nuovo framework di caching

� Ottimizzare le prestazioni – oltre TYPO3

� Conclusioni

Page 26: Typo3 prestazioni

Pag. 26 http://www.t3campitalia.it/Pag. 26

Il nuovo caching framework

� Dalla versione 4.3 è disponibile un nuovo caching framework che è stato importato dal FLOW3

� Fornisce metodi alternativi per il salvataggio dei dati di cache (es. database, file system, memcached) – nuovi metodi possono essere implementati per fornire storage diversi in maniera trasparente a TYPO3 e alle sue estensioni

� Gli elementi messi in cache possono essere taggati per consentire una più granulare gestione della cache

� Il nuovo caching framework consente di introdurre meccanismi di cache anche nelle estensioni USER_INT e in applicazioni custom

Page 27: Typo3 prestazioni

Pag. 27

Memcached

$TYPO3_CONF_VARS['SYS']['useCachingFramework'] = '1';

$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations'] = array (

'cache_hash' => array(

'frontend' => 't3lib_cache_frontend_VariableFrontend',

'backend' => 't3lib_cache_backend_MemcachedBackend',

'options' => array(

'servers' => array('localhost:11211'),

)

),

'cache_pages' => array(

'frontend' => 't3lib_cache_frontend_VariableFrontend',

'backend' => 't3lib_cache_backend_MemcachedBackend',

'options' => array(

'servers' => array('localhost:11211'),

)

),

'cache_pagesection' => array(

'frontend' => 't3lib_cache_frontend_VariableFrontend',

'backend' => 't3lib_cache_backend_MemcachedBackend',

'options' => array(

'servers' => array('localhost:11211'),

)

),

);

http://www.t3campitalia.it/Pag. 27

Page 28: Typo3 prestazioni

Pag. 28 http://www.t3campitalia.it/Pag. 28

Old vs New caching framework

0

50

100

150

200

250

300

No cache Parziale DB Fisica

Sec

on

di

Old

New

Page 29: Typo3 prestazioni

Pag. 29 http://www.t3campitalia.it/Pag. 29

Considerazioni

� Il nuovo caching framework non si è rivelato più performante del precedente, come mai? Ipotizzo:

� Nuovo framework, necessità di tempo per essere ottimizzato

� E’ un backporting da FLOW3, non è stato progettato per la versione 4 di TYPO3

� L’ambiente di test non era adeguato / ottimizzato per memcached

� Le differenze sono minime e potrebbero dipendere da variabili esterne che hanno interferito col test

� tt_news non sfrutta ancora a pieno le funzionalità del nuovo motore di caching

� La cache su file fisico è comunque la soluzione migliore!

Page 30: Typo3 prestazioni

Pag. 30 http://www.t3campitalia.it/Pag. 30

Scaletta

� Introduzione

� I 4 livelli di caching di TYPO3

� Comparazione prestazioni

� Il nuovo framework di caching

� Ottimizzare le prestazioni – oltre TYPO3

� Conclusioni

Page 31: Typo3 prestazioni

Pag. 31 http://www.t3campitalia.it/Pag. 31

Il server

� Ottimizzare TYPO3 può non bastare per raggiungere prestazioni super!

� Bisogna prestare attenzione anche a:

� Load bilancing

� Clustering MySQL

� Configurazione di Apache

� Ottimizzazione di PHP

� Creazione di indici in MySQL

� …

Page 32: Typo3 prestazioni

Pag. 32 http://www.t3campitalia.it/Pag. 32

La banda

� Oltre al tempo necessario al server per generare una pagina web, dobbiamo considerare anche il tempo necessario per scaricare:

� Codice HTML

� Immagini

� CSS

� Javascript

� …

Page 33: Typo3 prestazioni

Pag. 33 http://www.t3campitalia.it/Pag. 33

Situazione iniziale

Page 34: Typo3 prestazioni

Pag. 34 http://www.t3campitalia.it/Pag. 34

2 estensioni utili

� Source Optimization (sourceopt):

� Pulizia del codice XHTML

� Rimozione di righe vuote

� Spostamento di codice CSS inline in file esterni

� Rimozione dei commenti

� Javascript and CSS optimizer (js_css_optimizer)

� Compressione di codice Javascript

� Compressione di codice CSS

� Generazione di un singolo file JS a partire da file multipli

� Generazione di un singolo file CSS a partire da file multipli

� P.S. Ci sono altre estensioni simili nel repository

Page 35: Typo3 prestazioni

Pag. 35 http://www.t3campitalia.it/Pag. 35

Post-ottimizzazione

Page 36: Typo3 prestazioni

Pag. 36 http://www.t3campitalia.it/Pag. 36

Scaletta

� Introduzione

� I 4 livelli di caching di TYPO3

� Comparazione prestazioni

� Il nuovo framework di caching

� Ottimizzare le prestazioni – oltre TYPO3

� Conclusioni

Page 37: Typo3 prestazioni

Pag. 37 http://www.t3campitalia.it/Pag. 37

TYPO3 è veloce?

� Se configurato bene, si!

� Cache su file fisico e ottimizzazione di CSS/JS permettono di risparmiare su hardware e banda

� Se servono oggetti USER_INT è importante ottimizzarne il codice

� L’uso corretto della cache consente di abbattere i requisiti hardware di TYPO3 e di conseguenza l’acquisto di materiale e il consumo di risorse

Salvaguarda l’ambiente:configura correttamente la cache di TYPO3

☺☺☺

Page 38: Typo3 prestazioni

Pag. 38 http://www.t3campitalia.it/Pag. 38

Google, sempre lui...

� Le prestazioni sono importanti anche per Google!

� http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html

Page 39: Typo3 prestazioni

Pag. 39 http://www.t3campitalia.it/Pag. 39

Sponsor

Page 40: Typo3 prestazioni

Pag. 40 http://www.t3campitalia.it/Pag. 40

Q&A

Grazie per la vostra attenzione

Q & A

[email protected]

www.webformat.com