Petit trait´ de performances ` l’usage de tous           e                 a
DrupalPetit trait´ de performances ` l’usage de tous           e                 a    Int´grateur, architecte, d´veloppeur...
Petite introduction                             Les causes ´videntes                                        e             ...
Sommaire  1   Petite introduction  2   Les causes ´videntes                 e  3   D´tails et solutions       e  4   Et po...
Petite introduction                   Les causes ´videntes                              e            Drupal ?             ...
Petite introduction                             Les causes ´videntes                                        e            D...
Petite introduction                          Les causes ´videntes                                     e            Drupal ...
Petite introduction                 Les causes ´videntes                            e            Drupal ?                 ...
Petite introduction                           Les causes ´videntes                                      e            Drupa...
Petite introduction                       Les causes ´videntes                                  e            Drupal ?     ...
Petite introduction                   Les causes ´videntes                              e            ´                    ...
Petite introduction                  Les causes ´videntes                             e            ´                      ...
Petite introduction                           Les causes ´videntes                                      e            ´    ...
Un GROS goulot : la base de donn´es                                                                               e       ...
Un GROS goulot : la base de donn´es                                                                                  e    ...
Un GROS goulot : la base de donn´es                                                                             e         ...
Un GROS goulot : la base de donn´es                                                                            e          ...
Un GROS goulot : la base de donn´es                                                                                  e    ...
Un GROS goulot : la base de donn´es                                                                                    e  ...
Un GROS goulot : la base de donn´es                                                                                    e  ...
Un GROS goulot : la base de donn´es                                                                                 e     ...
Un GROS goulot : la base de donn´es                                                                                  e    ...
Un GROS goulot : la base de donn´es                                                                                   e   ...
Un GROS goulot : la base de donn´es                                                                                 e     ...
Un GROS goulot : la base de donn´es                                                                                e      ...
Un GROS goulot : la base de donn´es                                                                                   e   ...
Un GROS goulot : la base de donn´es                                                                                e      ...
Un GROS goulot : la base de donn´es                                                                                 e     ...
Un GROS goulot : la base de donn´es                                                                                  e    ...
Un GROS goulot : la base de donn´es                                                                                  e    ...
Petite introduction                          Les causes ´videntes                                     e            En vrac...
Petite introduction                   Les causes ´videntes                              e            En vrac. . .         ...
Petite introduction                  Les causes ´videntes                             e            En vrac. . .           ...
Drupalcamp Nantes - Traité performance
Prochain SlideShare
Chargement dans…5
×

Drupalcamp Nantes - Traité performance

738 vues

Publié le

Présentation de Pierre Rineau (http://twitter.com/#!/pounard)

Publié dans : Technologie, Business
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
738
Sur SlideShare
0
Issues des intégrations
0
Intégrations
41
Actions
Partages
0
Téléchargements
8
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Drupalcamp Nantes - Traité performance

  1. 1. Petit trait´ de performances ` l’usage de tous e a
  2. 2. DrupalPetit trait´ de performances ` l’usage de tous e a Int´grateur, architecte, d´veloppeur, tous concern´s e e e Pierre Rineau Makina Corpus pierre.rineau@makina-corpus.com Janvier 2011 MAKINA CORPUS
  3. 3. Petite introduction Les causes ´videntes e D´tails et solutions e Et pour finirSynopsis L’API grandissante de Drupal et la multiplication de nouvelles fonctionnalit´s g´n`rent de plus en plus de sites ”´l´phantesques”. La e e e ee r´activit´ d’un site, dans le monde du web, est un domaine critique qui e e concerne tous les intervenants. Travail pr´par´ en amont par le e e d´veloppeur, cet aspect n´c´ssite d’ˆtre pr´sent dans l’esprit de e e e e e l’int´grateur et doit ˆtre maˆ e par les administrateurs syst`me. Cette e e ıtris´ e session ` pour but de pr´senter la toile d’araign´e et les r´actions en chaˆ a e e e ıne provoqu´es dans un contexte ou ces trois rˆles s’ignorent. e o P. Rineau Petit trait´ de performances ` l’usage de tous e a
  4. 4. Sommaire 1 Petite introduction 2 Les causes ´videntes e 3 D´tails et solutions e 4 Et pour finir
  5. 5. Petite introduction Les causes ´videntes e Drupal ? D´tails et solutions e Rˆles et probl´matique o e Et pour finirQu’est ce que Drupal ? P. Rineau Petit trait´ de performances ` l’usage de tous e a
  6. 6. Petite introduction Les causes ´videntes e Drupal ? D´tails et solutions e Rˆles et probl´matique o e Et pour finirQu’est ce que Drupal ? Sur http://drupal.org : Drupal is an open source content management platform powering millions of websites and applications. Sur http://acquia.com/what-is-drupal : Tens of thousands of people and organizations have used Drupal to power scores of different web sites, including community web portals, corporate web sites, social networking sites, personal web sites or blogs, and much more. P. Rineau Petit trait´ de performances ` l’usage de tous e a
  7. 7. Petite introduction Les causes ´videntes e Drupal ? D´tails et solutions e Rˆles et probl´matique o e Et pour finirForces mais faiblesses • Tr`s fort dynamisme e • Le hook : alt´ration VS extention e • Un m´tier d´laiss´, r´cup´r´ par les modules e e e e ee • Des utilisation h´t´roclites : blog, e-commerce, social networking e e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  8. 8. Petite introduction Les causes ´videntes e Drupal ? D´tails et solutions e Rˆles et probl´matique o e Et pour finirLe d´veloppeur e • D´veloppe souvent pour un e seul cas d’utilisation • Ne connaˆ pas qui va utiliser ıt son produit • Documente peu P. Rineau Petit trait´ de performances ` l’usage de tous e a
  9. 9. Petite introduction Les causes ´videntes e Drupal ? D´tails et solutions e Rˆles et probl´matique o e Et pour finirL’int´grateur e • Utilise le travail de multiple d´veloppeurs e • Ne voit que la partie ´merg´e e e de l’iceberg • On lui demande souvent d’ˆtre e architecte logiciel P. Rineau Petit trait´ de performances ` l’usage de tous e a
  10. 10. Petite introduction Les causes ´videntes e Drupal ? D´tails et solutions e Rˆles et probl´matique o e Et pour finirL’architecte syst`me e • R´cup`re le travail de e e l’int´grateur e • Introduit des contraintes nouvelles, souvent a posteriori • Doit maˆ ıtriser le scaling d’une plateforme parmis tant d’autres P. Rineau Petit trait´ de performances ` l’usage de tous e a
  11. 11. Petite introduction Les causes ´videntes e ´ Echelle D´tails et solutions e Abstraction Et pour finirL’´chelle d’un module e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  12. 12. Petite introduction Les causes ´videntes e ´ Echelle D´tails et solutions e Abstraction Et pour finirL’abstraction Ce que con¸oit le d´veloppeur : c e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  13. 13. Petite introduction Les causes ´videntes e ´ Echelle D´tails et solutions e Abstraction Et pour finirL’abstraction Ce qu’utilise l’int´grateur : e Le r´sultat ! e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  14. 14. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreLe SQL • Drupal, usine ` requˆtes a e • Schema dispers´ et API non centralis´e e e • Des modules contraints au hack P. Rineau Petit trait´ de performances ` l’usage de tous e a
  15. 15. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreLe SQL : des solutions • D´veloppeurs, ´vitez les requˆtes inutiles e e e • D´veloppeurs toujours, utilisez des caches e • Int´grateurs, connaissez les modules! e • Architectes, pensez ` activer les caches a P. Rineau Petit trait´ de performances ` l’usage de tous e a
  16. 16. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreMySQL Vs. PostgreSQL MySQL, un grand gourmand! PostgreSQL, le poids de l’exp´rience. e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  17. 17. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreCache binaire : concept Normalisation VS S´rialisation e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  18. 18. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreCache binaire : utilit´ e ´ SOULAGER LA BASE DE DONNEE Non sans constraintes, ne pas r´petez les mˆmes erreurs : e e • Pensez aux I/O • Pensez latence P. Rineau Petit trait´ de performances ` l’usage de tous e a
  19. 19. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreLes caches et de le d´veloppeur e La responsabilit´ du d´veloppeur : mettre en place les caches e e • De multiple niveaux : des des caches diff´renti´s e e Plusieurs facteurs de s´paration logique des donn´es : e e • Criticit´ (fr´quence d’acc`s) e e e • Volum´trie (taille des ´l´ments) e ee P. Rineau Petit trait´ de performances ` l’usage de tous e a
  20. 20. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreLes caches et l’architecte La r´sponsabilit´ de l’architecte : bien les utiliser e e • Connaˆ ıtre les diff´rents niveaux e • Et les diff´rents backends e • Criticti´ VS volum´trie, ou e e bien choisir ses backends P. Rineau Petit trait´ de performances ` l’usage de tous e a
  21. 21. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreG´n´ralit´s et erreurs communes e e e • Parlons un peu des caches statiques • Statiques ou persistents, ne vous substituez jamais au compilateur! • Le cache doit ˆtre au coeur du design de l’application e • Dans certains cas il doit orienter les API • Trop de niveaux de cache dans la mˆme API soul`ve souvent un e e probl`me de design e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  22. 22. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreL’ennemi de l’architecte : l’environnement Linux / Apache / MySQL / PHP • Peu importe l’OS, mˆme probl´matiques e e • Architecture N-tiers de fait • Environnement consommateur en I/O P. Rineau Petit trait´ de performances ` l’usage de tous e a
  23. 23. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreL’OS • Son goulot d’´tranglement, les I/O e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  24. 24. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreLe HTTPd • Son goulot d’´tranglement, le HTTP (et donc les I/O) e • Mais aussi : • La concurence • La m´moire e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  25. 25. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreLe SGBD • Maˆ ıtre des donn´es, de leur int´grit´ et coh´rence e e e e • Difficile ` clusteriser a • Une force et faiblesse : le query cache (MySQL seulement) P. Rineau Petit trait´ de performances ` l’usage de tous e a
  26. 26. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtrePHP • Langage interp´t´ : compilation lors de chaque hit e e • Non persistent, d’o` la n´c´ssit´ des caches binaires u e e e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  27. 27. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreComment rendre PHP lightening fast Utilisez un OPCode cache • Enl`ve la phase de compilation et interpr´tation e e • Apporte de nombreuse optimisations De mani`re g´n´rale, divise le temps d’ex´cution approximativement e e e e par 2 P. Rineau Petit trait´ de performances ` l’usage de tous e a
  28. 28. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreUn OPCode cache : APC Voici un exemple des optimisations possibles. Les chiffres proviennent d’un environnement de d´veloppement, sur la home page d’un site D7 e sans modules. • PHP sans OPcode : 360ms • APC, sans configuration pr´alable : 107ms e • Avec apc.include_once_override et apc.canonicalize et sans apc.stat : 103ms • Avec le cache_bootstrap binaire dans APC : 94ms P. Rineau Petit trait´ de performances ` l’usage de tous e a
  29. 29. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreL’ennemi du d´veloppeur : le manque de culture e ` • A quasiment chaque probl`me il existe d´ja une solution e e • Un code grandissant n´c´ssite de r´fl´chir e e e e • Un code trop grandissant ne demande qu’` diminuer a • Renseignez vous sur comment la machine comprend votre code • N’ayez jamais peur lire celui des autres ! P. Rineau Petit trait´ de performances ` l’usage de tous e a
  30. 30. Un GROS goulot : la base de donn´es e Petite introduction La gestion des caches Les causes ´videntes e Connaˆ son ennemi: L’environnement ıtre D´tails et solutions e Connaˆ son ennemi: Les mauvais patterns ıtre Et pour finir Connaˆ son ennemi: Le manque de connaissance ıtreL’ennemi de l’int´grateur : trop de module tue le module e • Plus on est de fou, moins c’est rapide • Pourquoi utiliser un module de 100 000 lignes de code quand 10 suffisent ? • Pensez-vous ` tester les performances durant le d´veloppement ? a e • Savoir d´tecter les incoh´rences e e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  31. 31. Petite introduction Les causes ´videntes e En vrac. . . D´tails et solutions e Le temps. . . Et pour finirQuelques id´es en vrac e • Profilez-vous durant le d´veloppement et l’int´gration (xdebug, e e analyse de code, benchmarks) ? • Analysez-vous l’impact de performance de chaque module ? Si non, faites le ! Vous aurez des surprises.. • Le meilleur ami, de tous, ` tous les niveaux : le benchmark. a • Mais avant tout, quel est le m´tier de votre site ? e P. Rineau Petit trait´ de performances ` l’usage de tous e a
  32. 32. Petite introduction Les causes ´videntes e En vrac. . . D´tails et solutions e Le temps. . . Et pour finirNe sachant pas o` le temps allait nous amener u P. Rineau Petit trait´ de performances ` l’usage de tous e a
  33. 33. Petite introduction Les causes ´videntes e En vrac. . . D´tails et solutions e Le temps. . . Et pour finirZi Ende En avant pour des sites toujours plus sexy! Figure: c Jean-Yves Lemoigne P. Rineau Petit trait´ de performances ` l’usage de tous e a

×