SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Spingere al
       massimo le
       prestazioni di
       TYPO3
       Relatore: Mauro Lorenzutti




T3Camp Italia                               Bologna 26/27 Novembre 2010
Il primo evento italiano dedicato a TYPO3   Novotel fiera Bologna
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:
            mauro.lorenzutti@webformat.com
            www.webformat.com




Pag. 2                                             http://www.t3campitalia.it/
Questo talk non parla di…


         Ottimizzazione lato server
            Load Bilancing
            Clustering
            Ecc.

         Configurazioni di
            Apache
            PHP
            MySQL




Pag. 3                                      http://www.t3campitalia.it/
Ma parleremo di…


         Introduzione
         I 4 livelli di caching di TYPO3
         Comparazione prestazioni
         Il nuovo framework di caching
         Ottimizzare le prestazioni – oltre TYPO3
         Conclusioni




Pag. 4                                              http://www.t3campitalia.it/
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…




Pag. 5                                             http://www.t3campitalia.it/
TYPO3 vs Drupal vs Joomla


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




Pag. 6                                          http://www.t3campitalia.it/
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 ;-)?




Pag. 7                                               http://www.t3campitalia.it/
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




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


         Introduzione
         I 4 livelli di caching di TYPO3
         Comparazione prestazioni
         Il nuovo framework di caching
         Ottimizzare le prestazioni – oltre TYPO3
         Conclusioni




Pag. 9                                              http://www.t3campitalia.it/
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




Pag. 10                                             http://www.t3campitalia.it/
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




Pag. 11                                                    http://www.t3campitalia.it/
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
             ...




Pag. 12                                               http://www.t3campitalia.it/
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




Pag. 13                                               http://www.t3campitalia.it/
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




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


          Introduzione
          I 4 livelli di caching di TYPO3
          Comparazione prestazioni
          Il nuovo framework di caching
          Ottimizzare le prestazioni – oltre TYPO3
          Conclusioni




Pag. 15                                              http://www.t3campitalia.it/
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




Pag. 16                                            http://www.t3campitalia.it/
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




Pag. 17                                           http://www.t3campitalia.it/
Tempo richiesto per il test


                    450


                    400


                    350


                    300


                    250
          Secondi




                                                                                       PHP
                                                                                       eAccelerator
                    200


                    150


                    100


                    50


                     0
                          No cache       Parziale   DB              Fisica




Pag. 18                                                  http://www.t3campitalia.it/
Richieste per secondo


                    10000




                    1000
          Secondi




                                                                                        PHP
                      100                                                               eAccelerator




                       10




                        1
                            No cache      Parziale   DB               Fisica




Pag. 19                                                   http://www.t3campitalia.it/
Utilizzo della CPU


          80%



          70%



          60%



          50%

                                                                            PHP
          40%                                                               eAccelerator


          30%



          20%



          10%



          0%
                No cache      Parziale   DB               Fisica




Pag. 20                                       http://www.t3campitalia.it/
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%




Pag. 21                                                    http://www.t3campitalia.it/
TYPO3 4.2 vs TYPO3 4.4


               500


               450


               400


               350


               300
                                                                                4.2
     secondi




               250                                                              4.4


               200


               150


               100


               50


                0
                     No cache     Parziale   DB                     Fisica




Pag. 22                                           http://www.t3campitalia.it/
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




Pag. 23                                                       http://www.t3campitalia.it/
L’admin panel




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


          Introduzione
          I 4 livelli di caching di TYPO3
          Comparazione prestazioni
          Il nuovo framework di caching
          Ottimizzare le prestazioni – oltre TYPO3
          Conclusioni




Pag. 25                                              http://www.t3campitalia.it/
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




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


    $TYPO3_CONF_VARS['SYS']['useCachingFramework'] = '1';                    'cache_pagesection' => array(

    $TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations'] =                   'frontend' => 't3lib_cache_frontend_VariableFrontend',
         array (
                                                                                  'backend' => 't3lib_cache_backend_MemcachedBackend',
          'cache_hash' => array(
                                                                                  'options' => array(
               'frontend' => 't3lib_cache_frontend_VariableFrontend',
                                                                                            'servers' => array('localhost:11211'),
               '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'),

               )

          ),




Pag. 27                                                                      http://www.t3campitalia.it/
Old vs New
                                     caching framework

                    300




                    250




                    200
          Secondi




                                                                                       Old
                    150                                                                New




                    100




                    50




                      0
                          No cache       Parziale   DB                Fisica




Pag. 28                                                  http://www.t3campitalia.it/
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!




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


          Introduzione
          I 4 livelli di caching di TYPO3
          Comparazione prestazioni
          Il nuovo framework di caching
          Ottimizzare le prestazioni – oltre TYPO3
          Conclusioni




Pag. 30                                              http://www.t3campitalia.it/
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
             …




Pag. 31                                          http://www.t3campitalia.it/
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
             …




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




Pag. 33                   http://www.t3campitalia.it/
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

Pag. 34                                                       http://www.t3campitalia.it/
Post-ottimizzazione




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


          Introduzione
          I 4 livelli di caching di TYPO3
          Comparazione prestazioni
          Il nuovo framework di caching
          Ottimizzare le prestazioni – oltre TYPO3
          Conclusioni




Pag. 36                                              http://www.t3campitalia.it/
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
                                           ☺☺☺

Pag. 37                                            http://www.t3campitalia.it/
Google, sempre lui...


          Le prestazioni sono importanti anche per Google!




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


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




Pag. 39             http://www.t3campitalia.it/
Q&A


           Grazie per la vostra attenzione




                       Q&A




          mauro.lorenzutti@webformat.com
                www.webformat.com




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

Más contenido relacionado

Similar a Typo3 prestazioni

Le 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizioneLe 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizioneNicola Della Marina
 
TYPO3 & Templavoila Framework
TYPO3 & Templavoila FrameworkTYPO3 & Templavoila Framework
TYPO3 & Templavoila Frameworkgammsystem
 
Elaborazione automatica dei dati: calcolatore e matlab
Elaborazione automatica dei dati: calcolatore e matlabElaborazione automatica dei dati: calcolatore e matlab
Elaborazione automatica dei dati: calcolatore e matlabprofman
 
Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Mauro Lorenzutti
 
Tom EE appunti devoxx2012
Tom EE   appunti devoxx2012 Tom EE   appunti devoxx2012
Tom EE appunti devoxx2012 Nicola Pedot
 
ASP.NET performance optimization
ASP.NET performance optimizationASP.NET performance optimization
ASP.NET performance optimizationAndrea Dottor
 
TYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaTYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaRoberto Torresani
 
Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3Mauro Lorenzutti
 
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1 #...
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1  #...Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1  #...
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1 #...Aruba S.p.A.
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaRoberto Torresani
 
Fluid powered TYPO3
Fluid powered TYPO3Fluid powered TYPO3
Fluid powered TYPO3gammsystem
 

Similar a Typo3 prestazioni (20)

Le 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizioneLe 10 estensioni da tenere sempre a disposizione
Le 10 estensioni da tenere sempre a disposizione
 
Typo3 alfresco
Typo3 alfrescoTypo3 alfresco
Typo3 alfresco
 
TYPO3 CMS 7.4 Le novita
TYPO3 CMS 7.4 Le novitaTYPO3 CMS 7.4 Le novita
TYPO3 CMS 7.4 Le novita
 
TYPO3 CMS 8.0 - Le novità
TYPO3 CMS 8.0 - Le novitàTYPO3 CMS 8.0 - Le novità
TYPO3 CMS 8.0 - Le novità
 
TYPO3 8.5 - Le novità
TYPO3 8.5 - Le novitàTYPO3 8.5 - Le novità
TYPO3 8.5 - Le novità
 
TYPO3 & Templavoila Framework
TYPO3 & Templavoila FrameworkTYPO3 & Templavoila Framework
TYPO3 & Templavoila Framework
 
Elaborazione automatica dei dati: calcolatore e matlab
Elaborazione automatica dei dati: calcolatore e matlabElaborazione automatica dei dati: calcolatore e matlab
Elaborazione automatica dei dati: calcolatore e matlab
 
TYPO3 CMS 8.4 - Le novità
TYPO3 CMS 8.4 - Le novitàTYPO3 CMS 8.4 - Le novità
TYPO3 CMS 8.4 - Le novità
 
Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3
 
Tom EE appunti devoxx2012
Tom EE   appunti devoxx2012 Tom EE   appunti devoxx2012
Tom EE appunti devoxx2012
 
TYPO3 CMS 8.6 - Le novità
TYPO3 CMS 8.6 - Le novitàTYPO3 CMS 8.6 - Le novità
TYPO3 CMS 8.6 - Le novità
 
TYPO3 CMS 7.5: le novita
TYPO3 CMS 7.5: le novita TYPO3 CMS 7.5: le novita
TYPO3 CMS 7.5: le novita
 
ASP.NET performance optimization
ASP.NET performance optimizationASP.NET performance optimization
ASP.NET performance optimization
 
TYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaTYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novita
 
Il FAL di TYPO3 6.x
Il FAL di TYPO3 6.xIl FAL di TYPO3 6.x
Il FAL di TYPO3 6.x
 
Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3
 
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1 #...
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1  #...Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1  #...
Hosting: cache Jooml, tutte le opzioni spiegate passo dopo passo - parte 1 #...
 
TYPO3 CMS 7.1 - Le novita
TYPO3 CMS 7.1 - Le novitaTYPO3 CMS 7.1 - Le novita
TYPO3 CMS 7.1 - Le novita
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novita
 
Fluid powered TYPO3
Fluid powered TYPO3Fluid powered TYPO3
Fluid powered TYPO3
 

Más de Mauro Lorenzutti

TYPO3 and Magento together to manage Panini Stickers
TYPO3 and Magento together to manage Panini StickersTYPO3 and Magento together to manage Panini Stickers
TYPO3 and Magento together to manage Panini StickersMauro Lorenzutti
 
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated Platform
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated PlatformTYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated Platform
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated PlatformMauro Lorenzutti
 
Integrare Apache Solr in TYPO3
Integrare Apache Solr in TYPO3Integrare Apache Solr in TYPO3
Integrare Apache Solr in TYPO3Mauro Lorenzutti
 
MageDay 2013 - Magento e TYPO3: una soluzione integrata
MageDay 2013 - Magento e TYPO3: una soluzione integrataMageDay 2013 - Magento e TYPO3: una soluzione integrata
MageDay 2013 - Magento e TYPO3: una soluzione integrataMauro Lorenzutti
 

Más de Mauro Lorenzutti (6)

TYPO3 and Magento together to manage Panini Stickers
TYPO3 and Magento together to manage Panini StickersTYPO3 and Magento together to manage Panini Stickers
TYPO3 and Magento together to manage Panini Stickers
 
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated Platform
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated PlatformTYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated Platform
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated Platform
 
Integrare Apache Solr in TYPO3
Integrare Apache Solr in TYPO3Integrare Apache Solr in TYPO3
Integrare Apache Solr in TYPO3
 
MageDay 2013 - Magento e TYPO3: una soluzione integrata
MageDay 2013 - Magento e TYPO3: una soluzione integrataMageDay 2013 - Magento e TYPO3: una soluzione integrata
MageDay 2013 - Magento e TYPO3: una soluzione integrata
 
TYPO3 TCA: Tips & Tricks
TYPO3 TCA: Tips & TricksTYPO3 TCA: Tips & Tricks
TYPO3 TCA: Tips & Tricks
 
Typo3 autenticazione
Typo3 autenticazioneTypo3 autenticazione
Typo3 autenticazione
 

Typo3 prestazioni

  • 1. Spingere al massimo le prestazioni di TYPO3 Relatore: Mauro Lorenzutti T3Camp Italia Bologna 26/27 Novembre 2010 Il primo evento italiano dedicato a TYPO3 Novotel fiera Bologna
  • 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: mauro.lorenzutti@webformat.com www.webformat.com Pag. 2 http://www.t3campitalia.it/
  • 3. Questo talk non parla di… Ottimizzazione lato server Load Bilancing Clustering Ecc. Configurazioni di Apache PHP MySQL Pag. 3 http://www.t3campitalia.it/
  • 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 Pag. 4 http://www.t3campitalia.it/
  • 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… Pag. 5 http://www.t3campitalia.it/
  • 6. TYPO3 vs Drupal vs Joomla http://blogs.helion-prime.com/2008/05/19/typo3-joomla-and-drupal-cmss- performance-testing.html Pag. 6 http://www.t3campitalia.it/
  • 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 ;-)? Pag. 7 http://www.t3campitalia.it/
  • 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 Pag. 8 http://www.t3campitalia.it/
  • 9. Scaletta Introduzione I 4 livelli di caching di TYPO3 Comparazione prestazioni Il nuovo framework di caching Ottimizzare le prestazioni – oltre TYPO3 Conclusioni Pag. 9 http://www.t3campitalia.it/
  • 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 Pag. 10 http://www.t3campitalia.it/
  • 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 Pag. 11 http://www.t3campitalia.it/
  • 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 ... Pag. 12 http://www.t3campitalia.it/
  • 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 Pag. 13 http://www.t3campitalia.it/
  • 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 Pag. 14 http://www.t3campitalia.it/
  • 15. Scaletta Introduzione I 4 livelli di caching di TYPO3 Comparazione prestazioni Il nuovo framework di caching Ottimizzare le prestazioni – oltre TYPO3 Conclusioni Pag. 15 http://www.t3campitalia.it/
  • 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 Pag. 16 http://www.t3campitalia.it/
  • 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 Pag. 17 http://www.t3campitalia.it/
  • 18. Tempo richiesto per il test 450 400 350 300 250 Secondi PHP eAccelerator 200 150 100 50 0 No cache Parziale DB Fisica Pag. 18 http://www.t3campitalia.it/
  • 19. Richieste per secondo 10000 1000 Secondi PHP 100 eAccelerator 10 1 No cache Parziale DB Fisica Pag. 19 http://www.t3campitalia.it/
  • 20. Utilizzo della CPU 80% 70% 60% 50% PHP 40% eAccelerator 30% 20% 10% 0% No cache Parziale DB Fisica Pag. 20 http://www.t3campitalia.it/
  • 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% Pag. 21 http://www.t3campitalia.it/
  • 22. TYPO3 4.2 vs TYPO3 4.4 500 450 400 350 300 4.2 secondi 250 4.4 200 150 100 50 0 No cache Parziale DB Fisica Pag. 22 http://www.t3campitalia.it/
  • 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 Pag. 23 http://www.t3campitalia.it/
  • 24. L’admin panel Pag. 24 http://www.t3campitalia.it/
  • 25. Scaletta Introduzione I 4 livelli di caching di TYPO3 Comparazione prestazioni Il nuovo framework di caching Ottimizzare le prestazioni – oltre TYPO3 Conclusioni Pag. 25 http://www.t3campitalia.it/
  • 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 Pag. 26 http://www.t3campitalia.it/
  • 27. Memcached $TYPO3_CONF_VARS['SYS']['useCachingFramework'] = '1'; 'cache_pagesection' => array( $TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations'] = 'frontend' => 't3lib_cache_frontend_VariableFrontend', array ( 'backend' => 't3lib_cache_backend_MemcachedBackend', 'cache_hash' => array( 'options' => array( 'frontend' => 't3lib_cache_frontend_VariableFrontend', 'servers' => array('localhost:11211'), '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'), ) ), Pag. 27 http://www.t3campitalia.it/
  • 28. Old vs New caching framework 300 250 200 Secondi Old 150 New 100 50 0 No cache Parziale DB Fisica Pag. 28 http://www.t3campitalia.it/
  • 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! Pag. 29 http://www.t3campitalia.it/
  • 30. Scaletta Introduzione I 4 livelli di caching di TYPO3 Comparazione prestazioni Il nuovo framework di caching Ottimizzare le prestazioni – oltre TYPO3 Conclusioni Pag. 30 http://www.t3campitalia.it/
  • 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 … Pag. 31 http://www.t3campitalia.it/
  • 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 … Pag. 32 http://www.t3campitalia.it/
  • 33. Situazione iniziale Pag. 33 http://www.t3campitalia.it/
  • 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 Pag. 34 http://www.t3campitalia.it/
  • 35. Post-ottimizzazione Pag. 35 http://www.t3campitalia.it/
  • 36. Scaletta Introduzione I 4 livelli di caching di TYPO3 Comparazione prestazioni Il nuovo framework di caching Ottimizzare le prestazioni – oltre TYPO3 Conclusioni Pag. 36 http://www.t3campitalia.it/
  • 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 ☺☺☺ Pag. 37 http://www.t3campitalia.it/
  • 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 Pag. 38 http://www.t3campitalia.it/
  • 39. Sponsor Pag. 39 http://www.t3campitalia.it/
  • 40. Q&A Grazie per la vostra attenzione Q&A mauro.lorenzutti@webformat.com www.webformat.com Pag. 40 http://www.t3campitalia.it/