drupagora 2012 optimisation performances drupal

Download Drupagora 2012 Optimisation performances Drupal

If you can't read please download the document

Upload: skilld

Post on 05-Jun-2015

421 views

Category:

Business


0 download

DESCRIPTION

Optimisation des performances Drupal (Drupagora 2012)

TRANSCRIPT

  • 1. Drupal Optimisation des performances Par Jean-Baptiste Guerraz (@skilld_fr) & Frdric Marand (@OSInet)

2. Frdric, grantOSInet, est spcialis dans la scurit et les hautes performances Drupal. 3. Jean-Baptiste,directeur technique de Skilld, est spcialis dans la gestion technique des projets Drupal & mobile performants 4. Desserrez les freins ! Le cache de Drupal Drupal 6 Agressif ? Drupal 7 RTFS(ettings.php) PHP 5.3 5.4 Cache d'opcodes APC Zend cache Xcache EAccelerator 5. Du cache pour PHP & Drupal > Dcharger PHP APC RequteRequteLecture Opcodes dans APCCompilation PHP APCHITMISSExcution des opcodesExcution des opcodesCompilation PHPFin de requteFin de requteExcution des opcodesFin de requte 6. Du cache pour PHP & Drupal > Dcharger PHP APC 3.1.9 // allocate one segment of 32Mb apc.shm_segments=1 apc.shm_size=32 // do not check if php file was updated apc.stat= 0 // never expire apc.ttl = 0 // use kernel anonymous memory apc.mmap_file_mask = /dev/zero.Pour les geeks : http://www.techpresentations.org/APC_at_Facebook 7. Et au-del ? 8. On mesure ! Deux faons d'acclrer Gonfler le moteur Rduire les causes de lenteur Travailler moins Travailler mieux Facile ! Tout cacher ? NoSQL plus rapide ? La littrature de fanboy/marketer curl vs browser, ou back vs front 9. Du cache pour PHP & Drupal > Dcharger MySQL APC Memcache Le cache Drupal est par dfaut stock en base de donnes Dplacer le cache en mmoire (memcache) permet de retourner les donnes vite, mais surtout retire de la charge la base 1 instance memcache par cache (views, page, block, ) facilite la manipulation du cache. D6 vs D7 Mais un cache n'est pas une base...Temps de rponse (ms) 10. Du cache pour PHP & Drupal > Dcharger MySQL : cacher en base ? MongoDB REDIS MySQL ! 11. URLOptimiser les images > External cache Une image externe = une image comme une autreImagecache ExternalImageImage(pas de rsolution de domaine supplmentaire) Image / Image Cache> Image cache Une taille = une image (pas de redimension via JS / CSS)Image> Optimize Une image = une image optimise en poidsImageImageImageImage Optimize(pas d'image de 2Mb!!) ImageImageImageImage 12. Optimiser les images > Sprites (et / versus) CSS Embed Image Image Image ImageImage Image Image CSSImage Image ImageImage Image ImageSpritesImage Image Sprite Image Image Image Image ImageCSSCSS Embed ImagesCSSImage Image ImageCSSImageImage Image 13. CSS & JavaScript > Minimiser le nombre de requtes Agrger Core aggregates Core library Advanced Aggregates (D7 en cours de portage)CSSCSSCSSJSJSJSCSSCSSCSSJSJSJSJSJSCore aggregatesCSS> Minimiser le poids des fichiers Minifier Core library (JS only) JSMin / CSS Compressor (JSMin+ / CSS Tidy) Advanced Aggregates (D7 en cours de portage) Compresser Core aggregates Nginx / Apache Advanced Aggregates (D7 en cours de portage)CSSCSS Compressor / JSMinCSSCSSJSJSCore aggregates compressCSSCSSJSJS 14. Stockages de donnes > MySQL Et les autres ? PostgreSQL, SQLite SQL Server, Azure Oracle, DB2 15. Stockages de donnes > NoSQL MongoDB CouchDB, Riak Redis Tokyo / Kyoto Les autres Adapter la techno aux donnes : REDIS Analytics, not logging MongoDB Flow, not transactions 16. Stockages de donnes > Quelles donnes NoSQL D6 Sessions, logs D7 Field Storage, Lock, Queue Dcoupler les queues D8 Entity, File 17. Chargements & affichages des pages > Parallliser les tlchargements CDN (URL sharding) Page affiche site.com site.comPage affiche site.comHTMLHTMLstatic1.site.comCSSCSSstatic2.site.comCSSstatic3.site.comCSSJSImageCSS CSSsite.comCDN URL ShardingJS JSsite.comImageJSImageImage ImageTempsImageTemps 18. Chargements & affichages des pages > Profiter un maximum du cache navigateur CDN (far future) Tant que lagrgat CSS et/ou JS n'a pas chang, ne pas le recharger ! Idem pour les images et autres ressources statiques ! 19. Chargements & affichages des pages > Upload de cookie & ressources statiques Une image, un fichier CSS, ou bien un fichier JS ne doivent pas ncessiter d'information relative a l'utilisateur. Sur une connexion DSL standard, un cookie de 500 octets fait perdre environ une milliseconde par requte (100 images, 100 requtes => 100 millisecondes de perdu) Module CDN & URL Sharding + $cookie_domain (settings.php) sur le domaine principal = Des domaines (pour les ressources statiques) sans cookies ! 20. Chargements & affichages des pages > Les JavaScripts, tendances & bloquants ! De plus en plus de JavaScripts sont utiliss Le chargement d'un JavaScript est bloquant Page affichePage affiche site.comsite.comHTMLstatic1.site.comCSSJSHTMLstatic1.site.comImageCSSJSImagestatic2.site.comCSSJSImageHead.js (ou Lab.js) static3.site.comCSSstatic2.site.comCSS ImageImagestatic3.site.comCSS ImageTempsTempsJS 21. Cache des pages & ressources> Varnish Anonymes vs authentifis Expiration vs invalidation ESI 22. Analyse : caches Snapshot control APC control panel Memcache control panel Drupal memcache_admin phpmemcacheadmin History / baseline Munin, ... SaaS : NewRelic Events : Nagios, ... 23. Analyse : code = Profiling - XDebug & KcacheGrind - Zend Profiler - XHProf * avantages / limitations * modules devel, xhprof 24. Analyses : systme d'exploitation > strace syscall trace : observer les appels systme > Dtrace Solaris Observer tout dans le systme 25. Analyses:basededonnes >Snapshots releverlescompteurs:phpmyadmin >Logging Enregistrement mysqlslowqueries PerconavsOracle Munin... Anemometer 26. Analyses:blackboxouwhitebox?>tcpdump&wireshark Observerlesflux >grep,IDE Observerlessources 27. Analyses>GTMetrix 28. Analyses>YSlow&GooglePagespeed 29. Analyses >Firebug&Chromeinspector&DragonFly(;)) 30. Analyses >Whichloadsfaster.com 31. Merci!!Desquestions?:)Retrouvez cette prsentation sur Slideshare, cherchez skilld_fr, jbguerraz ou osinet