Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Drupalcamp Nantes - Traité performance

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 34 Anzeige

Weitere Verwandte Inhalte

Andere mochten auch (20)

Ähnlich wie Drupalcamp Nantes - Traité performance (20)

Anzeige

Weitere von Artusamak (20)

Aktuellste (20)

Anzeige

Drupalcamp Nantes - Traité performance

  1. 1. Petit trait´ de performances ` l’usage de tous e a
  2. 2. Drupal Petit 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 finir Synopsis 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 finir Qu’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 finir Qu’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 finir Forces 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 finir Le 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 finir L’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 finir L’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 finir L’´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 finir L’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 finir L’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 ıtre Le 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 ıtre Le 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 ıtre MySQL 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 ıtre Cache 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 ıtre Cache 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 ıtre Les 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 ıtre Les 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 ıtre G´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 ıtre L’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 ıtre L’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 ıtre Le 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 ıtre Le 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 ıtre PHP • 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 ıtre Comment 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 ıtre Un 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 ıtre L’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 ıtre L’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 finir Quelques 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 finir Ne 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 finir Zi 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

×