SlideShare une entreprise Scribd logo
Drupal Performance
La Communauté Drupal

   1000 cerveaux sont bien plus puissants qu‟un seul
   Les fonctionnalités que nous cherchons existent déjà!
    Ne réinventons pas la roue!
   Il ya des développeurs Drupal qui sont des génies!
    Profitons de leur expérience!
Le problème

   Drupal est gourmand. L‟affichage d‟une simple page
    peut parfois engendrer l‟exécution de 50 voir 150
    requêtes à la DB
   Imaginez vous cette même page appelée par plusieurs
    internautes en même temps. On obtient alors des
    centaines de requêtes et informations recalculées
    inutilement qui vont solliciter les serveurs et vont ainsi
    consommer du CPU et de la RAM
Performance, rendement Vs Evolutivité

    Evolutivité (Scalability)
        Capacité à faire face à une augmentation des utilisateurs et des
         données
    Rendement (Performance)
        Temps de réponse du serveur + temps de chargement de la page
    Notre approche aujourd‟hui
         Améliorer le temps de réponse de notre application Drupal pour des
         utilisateurs non identifiés
Ce que nous ne verrons pas

   Front end performance
   Back end performance
     Reverseproxy avec Varnish
     Apache mod_deflate
     APC
     Memcache
     Cache router
     Authcache
     Query cache
Alors? Qu’allons nous voir?

   Principes de caching
   Evaluer le rendement avec AB et Devel
   Le cache du cœur de Drupal
   Gestion du cache: Cache browser
   Gestion du cache: Content Refresh
Principes du Caching

   Eviter de répéter une même opération en gardant le
    résultat
   Ex.: Calculer 2+3,
     Écrire
          le résultat sur un papier (cacher dans la BD)
     Mémoriser le résultat (cacher en mémoire)
Qu’allons nous mettre dans le cache
    pour des utilisateurs non identifiés?
   Des pages, des pages et rien que des pages…
     Nous   oublions les views, les bloques…
Comment évaluer la preformance?

   Nous ne pouvons pas mettre en place des politiques
    de performances sans une évaluation des ces dernières
   Evaluer avec Apache Bench (AB)
     Facil,   simple et nous l‟avons tous installé par défaut
   Evaluer avec Devel
     Pluscomplexe, non compatible avec le cache agressif de
      Drupal, utile si nous n‟avons pas accès a la shell du serveur
Apache Bench (AB)

   AB test pour un utilisateur non identifié
       ab -c 1 -n 100 http://example.dev/
       Où
           -c = concurrence des requêtes
           -n = total des requêtes vers la page
       Dans notre cas nous allons faire 100 requêtes vers la home page
        http://example.dev/
   Un seul indicateur: „Requests per second‟
       Le nombre de requêtes (vers notre home page) que notre serveur
        peut “servir” en une seconde.
   C‟est avec cet indicateur que nous allons évaluer nos différentes
    politiques de performance. Plus il sera élevé, plus notre
    application sera performante.
Evaluer avec Devel

   Télécharger le module devel:
    http://drupal.org/project/devel
   Habiliter la composante: Performance Logging
   Configurer dans admin/settings/performance_logging
     Detailed   logging: Enabled
Faisons une première évaluation

   Con AB
   Con Devel
El caché del Core de Drupal

   Le système de cache de Drupal enregistre les données
    dans las tables suivantes:
    Par défaut                                    Configurable

    1. cache – enregistre une copie de la         1. cache_page – enregistre une
       configuration de nos modules, de la           copie des pages mais
       structure de toutes nos autres tables         seulement pour les utilisateurs
       et toutes les informations concernant         non identifiés
       le thème utilisé sur le site               2. cache_block – enregistre une
    2. cache_menu – enregistre une copie             copie des bloques
       du menu de navigation et des URLs
       qui lui sont associées
    3. cache_filter – une copie de tous les
       contenus une fois qu‟ils ont été filtrés
       par le système de filtre
    4. cache_form – enregistre tous les
       formulaires soumis à la FormApi
Activer le cache du coeur de Drupal

   Nous allons sur admin/settings/performance
   Cache des pages
     Mode  de cache: Normal ou agressif
     Durée de vie minimale de la mémoire cache: 3 heures
     Compression des pages: Activé
       Pour savoir si notre serveur réalize déjà la compression:
        http://www.whatsmyip.org/http_compression/
   Cache des bloques
     Pas   besion pour le moment car nous travaillons qu‟avec les
      utilisateurs non identifiés
Activer le cache du coeur de Drupal

   Optimisation de la bande-passante
     Optimise les fichiers CSS: Activé(en production)
     Optimise les fichiers Javascript: Activé(en production)

   Sauver la configuration
   Maintenant nous pouvons voir comment la table
    cache_page commence à se remplir
   Tester à nouveau avec AB ou Devel
Gestion du cache: Cache Browser

   Cache Browser
     http://drupal.org/project/cache_browser

     Nous  avons aussi besion du module
      http://drupal.org/project/format_number
     Nous permet de vider le cache de chaque table ou plus
      finement d‟un registre d‟une table. De cette manière nous
      ne devons pas vider le cache dans son entier.
     Nous permet de voir le contenu de chaque registre et ainsi
      voir comment une page est cachée.
Gestion du cache: Content Refresh

   Content Refresh
     http://drupal.org/project/content_refresh
     Hypothèse: Les utilisateurs non identifiés peuvent laisser des
      commentaires et le cache du coeur est activé.
     Sans Content Refresh, ils ne voient pas leur nouveau
      commentaire !
     Avec Content Refresh oui!
         Quand il y a un nouveau commentaire, le cache de cette page est
          éliminé y donc l‟utilisateur anonyme voir son nouveau commentaire.
         Quand on enregistre un nouveau node, le cache de la home page est
          éliminé
       Voir la configuration sur admin/content/content-refresh
En résumé

   La statégie de performance pour les utilisateurs non
    identifíes se base sur:
     Activé   le cache u cœur de Drupal seulement pour les
      pages
     Administrer le cache avec
       Cache Browser (administration)
       Content refresh (expiration)

   Reste à voir dans ce cadre
     Les   modules Cache Actions et Boost

Contenu connexe

PDF
Optimiser WordPress – Checklist après installation
PDF
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
PDF
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
PDF
Configuration Management avec Drupal 8
PDF
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
PDF
Meetup Drupal Lyon - Sécuriser un site drupal
PDF
Drupal7 - Bonnes Pratiques (Partie 1)
PDF
Drupal - La puissance de Drush
Optimiser WordPress – Checklist après installation
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
Configuration Management avec Drupal 8
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
Meetup Drupal Lyon - Sécuriser un site drupal
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal - La puissance de Drush

Tendances (20)

PDF
Industrialiser la gestion des fichiers multimedia #dcparis13
ODP
Archiva on glassfish
PDF
Optimiser WordPress
PDF
Optimiser wordpress
ODP
Java - JEE - servlets
PPT
1. Prestashop - Pré-requis
PPT
2. Prestashop - Installation
ODP
Drupagora 2012 Optimisation performances Drupal
PPTX
Configuration de base de WordPress
ODP
Java - JEE - Introduction aux JSP
PDF
Mpdf 13
PPTX
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
PPTX
Talk performance web
PDF
Mpdf 6
PPT
PostgreSQL sous linux
PPTX
Optimiser les performances dans Wordpress
PDF
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
PDF
Bâtir son site a l'aide de wordpress
PPT
Installation & Configuration - PrestaShop
PPTX
Aperçu de RequireJS
Industrialiser la gestion des fichiers multimedia #dcparis13
Archiva on glassfish
Optimiser WordPress
Optimiser wordpress
Java - JEE - servlets
1. Prestashop - Pré-requis
2. Prestashop - Installation
Drupagora 2012 Optimisation performances Drupal
Configuration de base de WordPress
Java - JEE - Introduction aux JSP
Mpdf 13
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
Talk performance web
Mpdf 6
PostgreSQL sous linux
Optimiser les performances dans Wordpress
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
Bâtir son site a l'aide de wordpress
Installation & Configuration - PrestaShop
Aperçu de RequireJS
Publicité

En vedette (20)

PPT
Família escola.13-14ppt
DOC
Parte tres del libro
PDF
Wikipedia Education Program
PPTX
Compu training relpay
DOCX
Travail Analytiques Web (KPI'S) - Jorge Martins MBA Marketing, Montreal
DOC
Parte once del libro
PPTX
Session 09, Sommaire et évaluation. Formation GB22 pour points nodaux.
PPTX
Ame gallery -la femme d'e.t., chronique du machisme ordinaire-
PPTX
Algorithmique
PDF
Competitividad Costa Rica
PDF
Lutte contre l'obésité
PDF
Apuntes sobre la pedagogía crítica, volumen 2, libro
DOC
Irene pérez íñiguez_rapport_stages_2- def
PPS
Ciudades más antiguas del mundo
PPTX
Semana cosecha 2011
PPT
Presentacion Pfizer Fguam
PPT
Trabajando con Google Docs
PDF
Social selling, la nueva forma de vender #socialselling
PDF
El constructivismo en el proceso enseñanza aprendizaje, libro
PDF
Pratiques numériques et informationnelles des jeunes
Família escola.13-14ppt
Parte tres del libro
Wikipedia Education Program
Compu training relpay
Travail Analytiques Web (KPI'S) - Jorge Martins MBA Marketing, Montreal
Parte once del libro
Session 09, Sommaire et évaluation. Formation GB22 pour points nodaux.
Ame gallery -la femme d'e.t., chronique du machisme ordinaire-
Algorithmique
Competitividad Costa Rica
Lutte contre l'obésité
Apuntes sobre la pedagogía crítica, volumen 2, libro
Irene pérez íñiguez_rapport_stages_2- def
Ciudades más antiguas del mundo
Semana cosecha 2011
Presentacion Pfizer Fguam
Trabajando con Google Docs
Social selling, la nueva forma de vender #socialselling
El constructivismo en el proceso enseñanza aprendizaje, libro
Pratiques numériques et informationnelles des jeunes
Publicité

Similaire à Drupal Performance (20)

ODP
Drupagora 2012 Optimisation performances Drupal
PDF
Webperf : par où commencer ? - SEOGoodVibes
PDF
Web Perf : par où commencer ? #SEOGoodVibes
PDF
Performance des sites dynamiques : une histoire de cache à tous les niveaux
PDF
La performance de vos applications Drupal
PDF
Drupalcamp Nantes - Optimisations drupal
PPTX
Drupagora - Les clés de la réussite d'un projet Drupal
PPTX
La mise en cache et ses secrets
PDF
Techniques d'accélération des pages web
PPT
201211 drupagora hostingdrupal
PDF
Drupagora linagora-20111110
ODP
Optimisation LAMP
PDF
Les performances sur des développements PhP
PPTX
Techniques d’accélération des pages Web
PPT
Cours 1/3 "Architecture Web"
PPTX
Techniques accélération des pages web #kiwiparty
PPTX
Développer et déployer une application php maintenable
PDF
Trucs & astuces drupal
PDF
PHP et Performances - AFUP 2005
ODP
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Drupagora 2012 Optimisation performances Drupal
Webperf : par où commencer ? - SEOGoodVibes
Web Perf : par où commencer ? #SEOGoodVibes
Performance des sites dynamiques : une histoire de cache à tous les niveaux
La performance de vos applications Drupal
Drupalcamp Nantes - Optimisations drupal
Drupagora - Les clés de la réussite d'un projet Drupal
La mise en cache et ses secrets
Techniques d'accélération des pages web
201211 drupagora hostingdrupal
Drupagora linagora-20111110
Optimisation LAMP
Les performances sur des développements PhP
Techniques d’accélération des pages Web
Cours 1/3 "Architecture Web"
Techniques accélération des pages web #kiwiparty
Développer et déployer une application php maintenable
Trucs & astuces drupal
PHP et Performances - AFUP 2005
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007

Drupal Performance

  • 2. La Communauté Drupal  1000 cerveaux sont bien plus puissants qu‟un seul  Les fonctionnalités que nous cherchons existent déjà! Ne réinventons pas la roue!  Il ya des développeurs Drupal qui sont des génies! Profitons de leur expérience!
  • 3. Le problème  Drupal est gourmand. L‟affichage d‟une simple page peut parfois engendrer l‟exécution de 50 voir 150 requêtes à la DB  Imaginez vous cette même page appelée par plusieurs internautes en même temps. On obtient alors des centaines de requêtes et informations recalculées inutilement qui vont solliciter les serveurs et vont ainsi consommer du CPU et de la RAM
  • 4. Performance, rendement Vs Evolutivité  Evolutivité (Scalability)  Capacité à faire face à une augmentation des utilisateurs et des données  Rendement (Performance)  Temps de réponse du serveur + temps de chargement de la page  Notre approche aujourd‟hui  Améliorer le temps de réponse de notre application Drupal pour des utilisateurs non identifiés
  • 5. Ce que nous ne verrons pas  Front end performance  Back end performance  Reverseproxy avec Varnish  Apache mod_deflate  APC  Memcache  Cache router  Authcache  Query cache
  • 6. Alors? Qu’allons nous voir?  Principes de caching  Evaluer le rendement avec AB et Devel  Le cache du cœur de Drupal  Gestion du cache: Cache browser  Gestion du cache: Content Refresh
  • 7. Principes du Caching  Eviter de répéter une même opération en gardant le résultat  Ex.: Calculer 2+3,  Écrire le résultat sur un papier (cacher dans la BD)  Mémoriser le résultat (cacher en mémoire)
  • 8. Qu’allons nous mettre dans le cache pour des utilisateurs non identifiés?  Des pages, des pages et rien que des pages…  Nous oublions les views, les bloques…
  • 9. Comment évaluer la preformance?  Nous ne pouvons pas mettre en place des politiques de performances sans une évaluation des ces dernières  Evaluer avec Apache Bench (AB)  Facil, simple et nous l‟avons tous installé par défaut  Evaluer avec Devel  Pluscomplexe, non compatible avec le cache agressif de Drupal, utile si nous n‟avons pas accès a la shell du serveur
  • 10. Apache Bench (AB)  AB test pour un utilisateur non identifié  ab -c 1 -n 100 http://example.dev/  Où  -c = concurrence des requêtes  -n = total des requêtes vers la page  Dans notre cas nous allons faire 100 requêtes vers la home page http://example.dev/  Un seul indicateur: „Requests per second‟  Le nombre de requêtes (vers notre home page) que notre serveur peut “servir” en une seconde.  C‟est avec cet indicateur que nous allons évaluer nos différentes politiques de performance. Plus il sera élevé, plus notre application sera performante.
  • 11. Evaluer avec Devel  Télécharger le module devel: http://drupal.org/project/devel  Habiliter la composante: Performance Logging  Configurer dans admin/settings/performance_logging  Detailed logging: Enabled
  • 12. Faisons une première évaluation  Con AB  Con Devel
  • 13. El caché del Core de Drupal  Le système de cache de Drupal enregistre les données dans las tables suivantes: Par défaut Configurable 1. cache – enregistre une copie de la 1. cache_page – enregistre une configuration de nos modules, de la copie des pages mais structure de toutes nos autres tables seulement pour les utilisateurs et toutes les informations concernant non identifiés le thème utilisé sur le site 2. cache_block – enregistre une 2. cache_menu – enregistre une copie copie des bloques du menu de navigation et des URLs qui lui sont associées 3. cache_filter – une copie de tous les contenus une fois qu‟ils ont été filtrés par le système de filtre 4. cache_form – enregistre tous les formulaires soumis à la FormApi
  • 14. Activer le cache du coeur de Drupal  Nous allons sur admin/settings/performance  Cache des pages  Mode de cache: Normal ou agressif  Durée de vie minimale de la mémoire cache: 3 heures  Compression des pages: Activé  Pour savoir si notre serveur réalize déjà la compression: http://www.whatsmyip.org/http_compression/  Cache des bloques  Pas besion pour le moment car nous travaillons qu‟avec les utilisateurs non identifiés
  • 15. Activer le cache du coeur de Drupal  Optimisation de la bande-passante  Optimise les fichiers CSS: Activé(en production)  Optimise les fichiers Javascript: Activé(en production)  Sauver la configuration  Maintenant nous pouvons voir comment la table cache_page commence à se remplir  Tester à nouveau avec AB ou Devel
  • 16. Gestion du cache: Cache Browser  Cache Browser  http://drupal.org/project/cache_browser  Nous avons aussi besion du module http://drupal.org/project/format_number  Nous permet de vider le cache de chaque table ou plus finement d‟un registre d‟une table. De cette manière nous ne devons pas vider le cache dans son entier.  Nous permet de voir le contenu de chaque registre et ainsi voir comment une page est cachée.
  • 17. Gestion du cache: Content Refresh  Content Refresh  http://drupal.org/project/content_refresh  Hypothèse: Les utilisateurs non identifiés peuvent laisser des commentaires et le cache du coeur est activé.  Sans Content Refresh, ils ne voient pas leur nouveau commentaire !  Avec Content Refresh oui!  Quand il y a un nouveau commentaire, le cache de cette page est éliminé y donc l‟utilisateur anonyme voir son nouveau commentaire.  Quand on enregistre un nouveau node, le cache de la home page est éliminé  Voir la configuration sur admin/content/content-refresh
  • 18. En résumé  La statégie de performance pour les utilisateurs non identifíes se base sur:  Activé le cache u cœur de Drupal seulement pour les pages  Administrer le cache avec  Cache Browser (administration)  Content refresh (expiration)  Reste à voir dans ce cadre  Les modules Cache Actions et Boost