Drupal Day 2011 - Drupal for Facebook: Come rendere "social" un sito Drupal
Performance e Drupal
-
Upload
vincenzo-di-biaggio -
Category
Software
-
view
43 -
download
0
Transcript of Performance e Drupal
Performance e DrupalCome individuare i colli di bottiglia della vostra applicazione (ed evitare che ne abbia in futuro)
Chi sono
Vincenzo Di Biaggio@vincenzodb
Software Developer @SparkFabrik - MilanoFB: https://www.facebook.com/sparkfabrik/
Software: https://github.com/vincenzodibiaggioVideogiochi: http://steamcommunity.com/id/vincenzodb/Foto: https://500px.com/vincenzodbMusica: http://www.last.fm/it/user/vincenzodb
- Il cliente chiama perchè il sito è lento
- Una volta chiusa la chiamata, l’intero ufficio si riunisce per pregare tenendosi per mano
- Dopo N ore ci si rende conto che si può migliorare la situazione SE si riesce ad identificare il problema
- Identificato il problema, si scrive del codice migliore
Il problema
Identificare e circoscrivere il problema / 1
- OGGI diamo per scontato che server e infrastruttura siano adeguati per sopportare il carico
- Le cache sono attive? Anche quelle di views? E quelle dei blocchi?
- CSS e Js vengono aggregati?
- Le immagini vengono gestite con degli opportuni image styles?
- Moduli come update_status o inerenti lo sviluppo (es. devel) sono disattivati?
- Il logging su database è disattivato?
Sì, è risposta a tutte le domande?Ora potete iniziare a pregare sul serio
Identificare e circoscrivere il problema / 2
- Disattivazione dei blocchi comuni a molte pagine
- Controllo risorse esterne
- Eliminare i dati superflui (field nelle query, field nelle view, ecc)
Principali colli di bottiglia
- Non utilizzare molti entity_load (node_load, taxonomy_term_load, ecc.)
- Preferire sempre node_load_multiple
- Se possibile, rimpiazzare i _load con delle query
- Usare il caching di views al meglio
- Utilizzare le differenze tra il caching dei risultati e del rendered output a nostro vantaggio
- Staticizzare i dati necessari frequentemente
- drupal_static se necessari nella stessa richiesta
- Cache Api per dati necessari nel tempo
Trovare i colli di bottiglia
La parola chiave è profilare.
Profilare quanto l’applicazione usa il database
Profilare quante volte effettuiamo operazioni identiche
Testare il carico dell’applicazione sui server
Testare l’ottimizzazione del Front End
DEMO
LinksDSC Profiling:
https://gitlab.sparkfabrik.com/vincenzo.dibiaggio/dsc-profiling
YSlow: http://yslow.org/
Google Page Speed: https://developers.google.com/speed/pagespeed/
Developer Toolbar del vostro browser, tab ‘Network’
Extended Statusbar per Firefox
Hints su ottimizzazione delle view: https://www.silviogutierrez.com/blog/optimizing-drupal-views-right-way/
High Performance Drupal (libro): https://www.drupal.org/node/2119971
Grazie
Vincenzo Di Biaggio@vincenzodb
Software Developer @SparkFabrik - MilanoFB: https://www.facebook.com/sparkfabrik/