SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Drupal
 Optimisation des performances


Par Jean-Baptiste Guerraz (@skilld_fr) & Frédéric Marand (@OSInet)
« Frédéric, gérant
OSInet, est spécialisé
dans la sécurité et les
hautes performances
Drupal. »
« Jean-Baptiste,
directeur technique de
Skilld, est spécialisé dans
la gestion technique des
projets Drupal & mobile
performants »
Desserrez les freins !
• « Le cache » de          • PHP
  Drupal                     – 5.3
  – Drupal 6                 – 5.4
     • Agressif ?          • Cache d'opcodes
  – Drupal 7                 – APC
     • RTFS(ettings.php)
                             – Zend cache
                             – Xcache
                             – EAccelerator
Du cache pour PHP & Drupal
> Décharger PHP
   • APC
      Requête                                     Requête


                                             Lecture Opcodes
  Compilation PHP                                dans APC
                                   HIT                              MISS
                        APC
Exécution des opcodes         Exécution des opcodes     Compilation PHP



   Fin de requête                Fin de requête       Exécution des opcodes



                                                            Fin de requête
Du cache pour PHP & Drupal
> Décharger 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
Et au-delà ?
On mesure !
• Deux façons d'accélérer
   – Gonfler le moteur
   – Réduire les causes de lenteur
      • Travailler moins
      • Travailler mieux
• Facile !
   – Tout cacher ?
   – NoSQL plus rapide ?
   – La « littérature » de fanboy/marketer
   – curl vs browser, ou back vs front
Du cache pour PHP & Drupal
> Décharger MySQL
   • APC
   • Memcache                                       Temps de réponse
                                                    (ms)

      • Le cache Drupal est par défaut stocké en
      base de données
      • Déplacer le cache en mémoire (memcache)
      permet de retourner les données 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...
Du cache pour PHP & Drupal

> Décharger MySQL :
  cacher en base ?

    ●
     MongoDB
    ●
     REDIS
    ●
     MySQL !
URL

Optimiser les images
                                                                          Imagecache
                                                                            External

> External cache
    • Une image externe = une image                     Image                  Image
    comme une autre
    (pas de résolution de domaine supplémentaire)
                                                            Image / Image Cache
> Image cache
    • Une taille = une image
    (pas de redimension via JS / CSS)               Image    Image     Image      Image

> Optimize
   • Une image = une image optimisée                          Image Optimize
   en poids
    (pas d'image de 2Mb!!)
                                                    Image    Image     Image      Image
Optimiser les images
> Sprites (et / versus) CSS Embed Image


      Image Image Image           Image Image Image
                           CSS                                  CSS
      Image Image Image           Image Image Image




                 Sprites                  CSS Embed Images



         Image Image       CSS              Image Image

            Sprite
      Image Image Image                   Image   CSS   Image


         Image Image                        Image Image
CSS   CSS    CSS       JS     JS   JS
CSS & JavaScript
                                                  CSS   CSS    CSS       JS     JS   JS
> Minimiser le nombre de requêtes
     •Agréger
         •Core aggregates
         •Core library                                        Core aggregates
         •Advanced Aggregates
         (D7 en cours de portage)
                                                  CSS   CSS                     JS   JS
> Minimiser le poids des fichiers
     •Minifier
          • Core library (JS only)                       CSS Compressor / JSMin
          •JSMin / CSS Compressor (JSMin+ / CSS
          Tidy)
          •Advanced Aggregates
                                                  CSS   CSS                     JS   JS
          (D7 en cours de portage)

    •Compresser
                                                        Core aggregates compress
        •Core aggregates
        •Nginx / Apache
        •Advanced Aggregates
        (D7 en cours de portage)                  CSS   CSS                     JS   JS
Stockages de données

> MySQL

Et les autres ?
●
 PostgreSQL, SQLite
●
 SQL Server, Azure
●
 Oracle, DB2
Stockages de données
> NoSQL
  •MongoDB
  •CouchDB, Riak
  •Redis
  •Tokyo / Kyoto
  •Les autres
Adapter la techno aux données :
  •REDIS → Analytics, not logging
  •MongoDB → Flow, not transactions
Stockages de données
> Quelles données NoSQL
  •D6
    •Sessions, logs
  •D7
    •Field Storage, Lock, Queue
    •Découpler les queues
  •D8
    •Entity, File
Chargements & affichages des pages
       > Paralléliser les téléchargements
          •CDN (URL sharding)
                                                    Page affichée                                                         Page affichée
site.com   HTML                                                                site.com    HTML


site.com          CSS                                                          static1.site.com   CSS   JS                  Image


                  CSS


                        CSS

site.com                                                                       static2.site.com   CSS                JS     Image
                              JS                                      CDN
                                           JS                          -
                                                                      URL
site.com                                                                       static3.site.com   CSS
                                                Image               Sharding                                                Image


                                                Image


                                                        Image




                                   Temps                                                                     Temps
Chargements & affichages des pages
> Profiter un maximum du cache navigateur
    • CDN (far future)
        • Tant que l’agrégat CSS et/ou JS n'a pas
        changé, ne pas le recharger !
            • Idem pour les images et autres
            ressources statiques !
Chargements & affichages des pages
> Upload de cookie & ressources statiques
   • Une image, un fichier CSS, ou bien un fichier JS ne
   doivent pas nécessiter d'information relative a
   l'utilisateur.
   • Sur une connexion DSL standard, un cookie de 500
   octets fait perdre environ une milliseconde par requête
   (100 images, 100 requêtes => 100 millisecondes de
   perdu)

                      Module CDN & URL Sharding
                                    +
          $cookie_domain (settings.php) sur le domaine principal
                                    =
        Des domaines (pour les ressources statiques) sans cookies !
Chargements & affichages des pages
> Les JavaScripts, tendances & bloquants !
    • De plus en plus de JavaScripts sont utilisés
    • Le chargement d'un JavaScript est bloquant
                                           Page affichée                                    Page affichée
site.com    HTML                                                         site.com     HTML


static1.site.com   CSS   JS                 Image                        static1.site.com
                                                                                             CSS      JS


                                                                                             Image



static2.site.com   CSS                JS    Image
                                                                         static2.site.com     CSS     JS
                                                             Head.js
                                                           (ou Lab.js)                       Image

static3.site.com   CSS                      Image


                                                                         static3.site.com     CSS


                                                                                             Image




                              Temps
                                                                                        Temps
Cache des pages & ressources


> Varnish

●
  Anonymes vs authentifiés
●
  Expiration vs invalidation
●
  ESI
Analyse : caches

Snapshot control
    ●
      APC control panel
    ●
      Memcache
        ●
          control panel
        ●
          Drupal memcache_admin
        ●
          phpmemcacheadmin
●
  History / baseline
    ●
      Munin, ...
    ●
      SaaS : NewRelic
    ●
      Events : Nagios, ...
Analyse : code = Profiling


- XDebug & KcacheGrind
- Zend Profiler
- XHProf
     * avantages / limitations
     * modules devel, xhprof
Analyses : système d'exploitation

> strace
  • syscall trace : observer les
  appels système
> Dtrace
  • Solaris
  • Observer tout dans le système
Analyses : base de données
> Snapshots
  • relever les compteurs: phpmyadmin
> Logging
  • Enregistrement
     • mysql slow queries
     • Percona vs Oracle
     • Munin...
  • Anemometer
Analyses : black box ou white box ?



> tcpdump & wireshark
   • Observer les flux
> grep, IDE
   • Observer les sources
Analyses


> GTMetrix
Analyses


> YSlow & Google Pagespeed
Analyses
> Firebug & Chrome inspector & Dragon Fly (;))
Analyses
> Whichloadsfaster.com
Merci !! Des questions ?:)




       Retrouvez cette présentation sur Slideshare,
           cherchez skilld_fr, jbguerraz ou osinet

Weitere ähnliche Inhalte

Andere mochten auch

Imagenes WrestleMania [EveryDayWWE]
Imagenes WrestleMania [EveryDayWWE]Imagenes WrestleMania [EveryDayWWE]
Imagenes WrestleMania [EveryDayWWE]pronger
 
Mestre industrial
Mestre industrialMestre industrial
Mestre industrialmarblocs
 
4. entre el azar y la reflexión. titles of the creations in inglish, german a...
4. entre el azar y la reflexión. titles of the creations in inglish, german a...4. entre el azar y la reflexión. titles of the creations in inglish, german a...
4. entre el azar y la reflexión. titles of the creations in inglish, german a...Luis Ferreira
 
Tutorial final cut pro 7 pour Memoways
Tutorial final cut pro 7 pour MemowaysTutorial final cut pro 7 pour Memoways
Tutorial final cut pro 7 pour MemowaysUlrich Fischer
 
Donepezil demences vasculaires_prescrire
Donepezil demences vasculaires_prescrireDonepezil demences vasculaires_prescrire
Donepezil demences vasculaires_prescrireslatefr
 
Informatica 2-ponce rocio
Informatica 2-ponce rocioInformatica 2-ponce rocio
Informatica 2-ponce rocioRocio Ponce
 

Andere mochten auch (12)

Imagenes WrestleMania [EveryDayWWE]
Imagenes WrestleMania [EveryDayWWE]Imagenes WrestleMania [EveryDayWWE]
Imagenes WrestleMania [EveryDayWWE]
 
La Verdadera Amistad
La Verdadera AmistadLa Verdadera Amistad
La Verdadera Amistad
 
Sirev’s fate
Sirev’s fateSirev’s fate
Sirev’s fate
 
Mestre industrial
Mestre industrialMestre industrial
Mestre industrial
 
4. entre el azar y la reflexión. titles of the creations in inglish, german a...
4. entre el azar y la reflexión. titles of the creations in inglish, german a...4. entre el azar y la reflexión. titles of the creations in inglish, german a...
4. entre el azar y la reflexión. titles of the creations in inglish, german a...
 
SoSe 2013 | Basisinformationstechnologie II - 07_Video / Audio: Kompressionsv...
SoSe 2013 | Basisinformationstechnologie II - 07_Video / Audio: Kompressionsv...SoSe 2013 | Basisinformationstechnologie II - 07_Video / Audio: Kompressionsv...
SoSe 2013 | Basisinformationstechnologie II - 07_Video / Audio: Kompressionsv...
 
Tutorial final cut pro 7 pour Memoways
Tutorial final cut pro 7 pour MemowaysTutorial final cut pro 7 pour Memoways
Tutorial final cut pro 7 pour Memoways
 
Louis armstrong
Louis armstrongLouis armstrong
Louis armstrong
 
Tarea flujo compresible
Tarea flujo compresibleTarea flujo compresible
Tarea flujo compresible
 
Ivry Diaporama Intervention Jean Jouzel
Ivry Diaporama Intervention Jean JouzelIvry Diaporama Intervention Jean Jouzel
Ivry Diaporama Intervention Jean Jouzel
 
Donepezil demences vasculaires_prescrire
Donepezil demences vasculaires_prescrireDonepezil demences vasculaires_prescrire
Donepezil demences vasculaires_prescrire
 
Informatica 2-ponce rocio
Informatica 2-ponce rocioInformatica 2-ponce rocio
Informatica 2-ponce rocio
 

Ähnlich wie Drupagora 2012 Optimisation performances Drupal

Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalSkilld
 
Améliorer la rapidité de son site web
Améliorer la rapidité de son site webAméliorer la rapidité de son site web
Améliorer la rapidité de son site webEmmanuel Gautier
 
AWS Paris Summit 2014 - T1 - Services de bases de données
AWS Paris Summit 2014 - T1 - Services de bases de donnéesAWS Paris Summit 2014 - T1 - Services de bases de données
AWS Paris Summit 2014 - T1 - Services de bases de donnéesAmazon Web Services
 
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévuAWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévuAmazon Web Services
 
10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPress10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPressAurélien Denis
 
Le SEO JavaScript démystifié
Le SEO JavaScript démystifiéLe SEO JavaScript démystifié
Le SEO JavaScript démystifiéAdrien Russo
 
Ma participation au WebPerf Contest 2010
Ma participation au WebPerf Contest 2010Ma participation au WebPerf Contest 2010
Ma participation au WebPerf Contest 2010Cédric MORIN
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web MobileWilly Leloutre
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010Jean-Pierre Vincent
 
SPIP et la gestion de la performance
SPIP et la gestion de la performanceSPIP et la gestion de la performance
SPIP et la gestion de la performanceCédric MORIN
 
Relational databases & NoSQL databases
Relational databases & NoSQL databasesRelational databases & NoSQL databases
Relational databases & NoSQL databasesCédric Villa
 
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]IBM France PME-ETI
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascriptcodedarmor
 
CSS3 - Possibilite creatives
CSS3 - Possibilite creativesCSS3 - Possibilite creatives
CSS3 - Possibilite creativesRémy Savard
 
SEO & Javascript en 2021 : Challenger les acquis - Alexandre Pinat - SEO CAMP...
SEO & Javascript en 2021 : Challenger les acquis - Alexandre Pinat - SEO CAMP...SEO & Javascript en 2021 : Challenger les acquis - Alexandre Pinat - SEO CAMP...
SEO & Javascript en 2021 : Challenger les acquis - Alexandre Pinat - SEO CAMP...SEO CAMP
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 

Ähnlich wie Drupagora 2012 Optimisation performances Drupal (20)

Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances Drupal
 
Améliorer la rapidité de son site web
Améliorer la rapidité de son site webAméliorer la rapidité de son site web
Améliorer la rapidité de son site web
 
Systematic, toolchain JS
Systematic, toolchain JSSystematic, toolchain JS
Systematic, toolchain JS
 
AWS Paris Summit 2014 - T1 - Services de bases de données
AWS Paris Summit 2014 - T1 - Services de bases de donnéesAWS Paris Summit 2014 - T1 - Services de bases de données
AWS Paris Summit 2014 - T1 - Services de bases de données
 
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévuAWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
 
10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPress10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPress
 
Le SEO JavaScript démystifié
Le SEO JavaScript démystifiéLe SEO JavaScript démystifié
Le SEO JavaScript démystifié
 
Talk performance web
Talk performance webTalk performance web
Talk performance web
 
Ma participation au WebPerf Contest 2010
Ma participation au WebPerf Contest 2010Ma participation au WebPerf Contest 2010
Ma participation au WebPerf Contest 2010
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web Mobile
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010
 
SPIP et la gestion de la performance
SPIP et la gestion de la performanceSPIP et la gestion de la performance
SPIP et la gestion de la performance
 
Relational databases & NoSQL databases
Relational databases & NoSQL databasesRelational databases & NoSQL databases
Relational databases & NoSQL databases
 
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
Stockage et Cloud [#CloudAccelerate 13/06/2014 @ IBM CC Paris]
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
 
CSS3 - Possibilite creatives
CSS3 - Possibilite creativesCSS3 - Possibilite creatives
CSS3 - Possibilite creatives
 
SEO & Javascript en 2021 : Challenger les acquis - Alexandre Pinat - SEO CAMP...
SEO & Javascript en 2021 : Challenger les acquis - Alexandre Pinat - SEO CAMP...SEO & Javascript en 2021 : Challenger les acquis - Alexandre Pinat - SEO CAMP...
SEO & Javascript en 2021 : Challenger les acquis - Alexandre Pinat - SEO CAMP...
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 

Drupagora 2012 Optimisation performances Drupal

  • 1. Drupal Optimisation des performances Par Jean-Baptiste Guerraz (@skilld_fr) & Frédéric Marand (@OSInet)
  • 2. « Frédéric, gérant OSInet, est spécialisé dans la sécurité et les hautes performances Drupal. »
  • 3. « Jean-Baptiste, directeur technique de Skilld, est spécialisé dans la gestion technique des projets Drupal & mobile performants »
  • 4. Desserrez les freins ! • « Le cache » de • PHP Drupal – 5.3 – Drupal 6 – 5.4 • Agressif ? • Cache d'opcodes – Drupal 7 – APC • RTFS(ettings.php) – Zend cache – Xcache – EAccelerator
  • 5. Du cache pour PHP & Drupal > Décharger PHP • APC Requête Requête Lecture Opcodes Compilation PHP dans APC HIT MISS APC Exécution des opcodes Exécution des opcodes Compilation PHP Fin de requête Fin de requête Exécution des opcodes Fin de requête
  • 6. Du cache pour PHP & Drupal > Décharger 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
  • 8. On mesure ! • Deux façons d'accélérer – Gonfler le moteur – Réduire les causes de lenteur • Travailler moins • Travailler mieux • Facile ! – Tout cacher ? – NoSQL plus rapide ? – La « littérature » de fanboy/marketer – curl vs browser, ou back vs front
  • 9. Du cache pour PHP & Drupal > Décharger MySQL • APC • Memcache Temps de réponse (ms) • Le cache Drupal est par défaut stocké en base de données • Déplacer le cache en mémoire (memcache) permet de retourner les données 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...
  • 10. Du cache pour PHP & Drupal > Décharger MySQL : cacher en base ? ● MongoDB ● REDIS ● MySQL !
  • 11. URL Optimiser les images Imagecache External > External cache • Une image externe = une image Image Image comme une autre (pas de résolution de domaine supplémentaire) Image / Image Cache > Image cache • Une taille = une image (pas de redimension via JS / CSS) Image Image Image Image > Optimize • Une image = une image optimisée Image Optimize en poids (pas d'image de 2Mb!!) Image Image Image Image
  • 12. Optimiser les images > Sprites (et / versus) CSS Embed Image Image Image Image Image Image Image CSS CSS Image Image Image Image Image Image Sprites CSS Embed Images Image Image CSS Image Image Sprite Image Image Image Image CSS Image Image Image Image Image
  • 13. CSS CSS CSS JS JS JS CSS & JavaScript CSS CSS CSS JS JS JS > Minimiser le nombre de requêtes •Agréger •Core aggregates •Core library Core aggregates •Advanced Aggregates (D7 en cours de portage) CSS CSS JS JS > Minimiser le poids des fichiers •Minifier • Core library (JS only) CSS Compressor / JSMin •JSMin / CSS Compressor (JSMin+ / CSS Tidy) •Advanced Aggregates CSS CSS JS JS (D7 en cours de portage) •Compresser Core aggregates compress •Core aggregates •Nginx / Apache •Advanced Aggregates (D7 en cours de portage) CSS CSS JS JS
  • 14. Stockages de données > MySQL Et les autres ? ● PostgreSQL, SQLite ● SQL Server, Azure ● Oracle, DB2
  • 15. Stockages de données > NoSQL •MongoDB •CouchDB, Riak •Redis •Tokyo / Kyoto •Les autres Adapter la techno aux données : •REDIS → Analytics, not logging •MongoDB → Flow, not transactions
  • 16. Stockages de données > Quelles données NoSQL •D6 •Sessions, logs •D7 •Field Storage, Lock, Queue •Découpler les queues •D8 •Entity, File
  • 17. Chargements & affichages des pages > Paralléliser les téléchargements •CDN (URL sharding) Page affichée Page affichée site.com HTML site.com HTML site.com CSS static1.site.com CSS JS Image CSS CSS site.com static2.site.com CSS JS Image JS CDN JS - URL site.com static3.site.com CSS Image Sharding Image Image Image Temps Temps
  • 18. Chargements & affichages des pages > Profiter un maximum du cache navigateur • CDN (far future) • Tant que l’agrégat 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 nécessiter d'information relative a l'utilisateur. • Sur une connexion DSL standard, un cookie de 500 octets fait perdre environ une milliseconde par requête (100 images, 100 requêtes => 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 utilisés • Le chargement d'un JavaScript est bloquant Page affichée Page affichée site.com HTML site.com HTML static1.site.com CSS JS Image static1.site.com CSS JS Image static2.site.com CSS JS Image static2.site.com CSS JS Head.js (ou Lab.js) Image static3.site.com CSS Image static3.site.com CSS Image Temps Temps
  • 21. Cache des pages & ressources > Varnish ● Anonymes vs authentifiés ● 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 : système d'exploitation > strace • syscall trace : observer les appels système > Dtrace • Solaris • Observer tout dans le système
  • 25. Analyses : base de données > Snapshots • relever les compteurs: phpmyadmin > Logging • Enregistrement • mysql slow queries • Percona vs Oracle • Munin... • Anemometer
  • 26. Analyses : black box ou white box ? > tcpdump & wireshark • Observer les flux > grep, IDE • Observer les sources
  • 28. Analyses > YSlow & Google Pagespeed
  • 29. Analyses > Firebug & Chrome inspector & Dragon Fly (;))
  • 31. Merci !! Des questions ?:) Retrouvez cette présentation sur Slideshare, cherchez skilld_fr, jbguerraz ou osinet