SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
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

Tendances

Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Aurelien Navarre
 
Archiva on glassfish
Archiva on glassfishArchiva on glassfish
Archiva on glassfishMikkaz
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
Java - JEE - servlets
Java - JEE - servletsJava - JEE - servlets
Java - JEE - servletsNoël
 
1. Prestashop - Pré-requis
1. Prestashop - Pré-requis1. Prestashop - Pré-requis
1. Prestashop - Pré-requisAgence Webup
 
2. Prestashop - Installation
2. Prestashop - Installation2. Prestashop - Installation
2. Prestashop - InstallationAgence Webup
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalSkilld
 
Configuration de base de WordPress
Configuration de base de WordPressConfiguration de base de WordPress
Configuration de base de WordPresse-Action
 
Java - JEE - Introduction aux JSP
Java - JEE - Introduction aux JSPJava - JEE - Introduction aux JSP
Java - JEE - Introduction aux JSPNoël
 
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...medfaye
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linuxKhalid ALLILI
 
Optimiser les performances dans Wordpress
Optimiser les performances dans WordpressOptimiser les performances dans Wordpress
Optimiser les performances dans WordpressNicolas Juen
 
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshopTout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshopNuxeo
 
Bâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpressBâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpressFrédéric Caron
 
Installation & Configuration - PrestaShop
Installation & Configuration - PrestaShopInstallation & Configuration - PrestaShop
Installation & Configuration - PrestaShopPrestaShop
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJSVISEO
 

Tendances (20)

Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13
 
Archiva on glassfish
Archiva on glassfishArchiva on glassfish
Archiva on glassfish
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Java - JEE - servlets
Java - JEE - servletsJava - JEE - servlets
Java - JEE - servlets
 
1. Prestashop - Pré-requis
1. Prestashop - Pré-requis1. Prestashop - Pré-requis
1. Prestashop - Pré-requis
 
2. Prestashop - Installation
2. Prestashop - Installation2. Prestashop - Installation
2. Prestashop - Installation
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances Drupal
 
Configuration de base de WordPress
Configuration de base de WordPressConfiguration de base de WordPress
Configuration de base de WordPress
 
Java - JEE - Introduction aux JSP
Java - JEE - Introduction aux JSPJava - JEE - Introduction aux JSP
Java - JEE - Introduction aux JSP
 
Mpdf 13
Mpdf 13Mpdf 13
Mpdf 13
 
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
Installation et configuration d'AWSTATS "Outils d'analyse de Logs" sur Centos...
 
Talk performance web
Talk performance webTalk performance web
Talk performance web
 
Mpdf 6
Mpdf 6Mpdf 6
Mpdf 6
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Optimiser les performances dans Wordpress
Optimiser les performances dans WordpressOptimiser les performances dans Wordpress
Optimiser les performances dans Wordpress
 
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshopTout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
Tout comprendre de Nuxeo Drive - Nuxeo Tour 2014 - workshop
 
Bâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpressBâtir son site a l'aide de wordpress
Bâtir son site a l'aide de wordpress
 
Installation & Configuration - PrestaShop
Installation & Configuration - PrestaShopInstallation & Configuration - PrestaShop
Installation & Configuration - PrestaShop
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
 

En vedette

Família escola.13-14ppt
Família escola.13-14pptFamília escola.13-14ppt
Família escola.13-14pptROSARIO V
 
Wikipedia Education Program
Wikipedia Education ProgramWikipedia Education Program
Wikipedia Education ProgramHabib M'henni
 
Travail Analytiques Web (KPI'S) - Jorge Martins MBA Marketing, Montreal
Travail Analytiques Web (KPI'S) - Jorge Martins MBA Marketing, MontrealTravail Analytiques Web (KPI'S) - Jorge Martins MBA Marketing, Montreal
Travail Analytiques Web (KPI'S) - Jorge Martins MBA Marketing, Montrealjorgerodrigo.com
 
Session 09, Sommaire et évaluation. Formation GB22 pour points nodaux.
Session 09, Sommaire et évaluation. Formation GB22 pour points nodaux.Session 09, Sommaire et évaluation. Formation GB22 pour points nodaux.
Session 09, Sommaire et évaluation. Formation GB22 pour points nodaux.Alberto González-Talaván
 
Ame gallery -la femme d'e.t., chronique du machisme ordinaire-
Ame gallery -la femme d'e.t., chronique du machisme ordinaire-Ame gallery -la femme d'e.t., chronique du machisme ordinaire-
Ame gallery -la femme d'e.t., chronique du machisme ordinaire-Antoine Mercier-ame
 
Competitividad Costa Rica
Competitividad Costa RicaCompetitividad Costa Rica
Competitividad Costa RicaPatricia Alfaro
 
Lutte contre l'obésité
Lutte contre l'obésité Lutte contre l'obésité
Lutte contre l'obésité jc WECKERLE
 
Apuntes sobre la pedagogía crítica, volumen 2, libro
Apuntes sobre la pedagogía crítica, volumen 2, libroApuntes sobre la pedagogía crítica, volumen 2, libro
Apuntes sobre la pedagogía crítica, volumen 2, libroLilia G. Torres Fernández
 
Irene pérez íñiguez_rapport_stages_2- def
Irene pérez íñiguez_rapport_stages_2- defIrene pérez íñiguez_rapport_stages_2- def
Irene pérez íñiguez_rapport_stages_2- defgraci_ij
 
Ciudades más antiguas del mundo
Ciudades más antiguas del mundoCiudades más antiguas del mundo
Ciudades más antiguas del mundoJuan Ignacio B.
 
Presentacion Pfizer Fguam
Presentacion Pfizer  FguamPresentacion Pfizer  Fguam
Presentacion Pfizer FguamMilena
 
Trabajando con Google Docs
Trabajando con Google DocsTrabajando con Google Docs
Trabajando con Google Docsmethenyes
 
Social selling, la nueva forma de vender #socialselling
Social selling, la nueva forma de vender #socialsellingSocial selling, la nueva forma de vender #socialselling
Social selling, la nueva forma de vender #socialsellingSoluciona Facil
 
El constructivismo en el proceso enseñanza aprendizaje, libro
El constructivismo en el proceso enseñanza aprendizaje, libroEl constructivismo en el proceso enseñanza aprendizaje, libro
El constructivismo en el proceso enseñanza aprendizaje, libroLilia G. Torres Fernández
 
Pratiques numériques et informationnelles des jeunes
Pratiques numériques et informationnelles des jeunesPratiques numériques et informationnelles des jeunes
Pratiques numériques et informationnelles des jeunesGérard Marquié
 

En vedette (20)

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

Similaire à Drupal Performance

Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g noble Bajoli
 
Drupalcamp Nantes - Optimisations drupal
Drupalcamp Nantes - Optimisations drupalDrupalcamp Nantes - Optimisations drupal
Drupalcamp Nantes - Optimisations drupalArtusamak
 
LP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptxLP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptxFATIMAEZZAHRAEOUBELL
 
Share point 2013 distributed cache
Share point 2013 distributed cacheShare point 2013 distributed cache
Share point 2013 distributed cacheMichael Nokhamzon
 
Memcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMemcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMehdi Mehni
 
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdflaravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdfHeartKing10
 
[Tuto] Sql backup : Comment sauvegarder une base de données SQL Server dans l...
[Tuto] Sql backup : Comment sauvegarder une base de données SQL Server dans l...[Tuto] Sql backup : Comment sauvegarder une base de données SQL Server dans l...
[Tuto] Sql backup : Comment sauvegarder une base de données SQL Server dans l...Microsoft Technet France
 
Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Olivier DASINI
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
Comment gérer un site à très haut trafic avec Drupal
Comment gérer un site à très haut trafic avec DrupalComment gérer un site à très haut trafic avec Drupal
Comment gérer un site à très haut trafic avec DrupalAdyax
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdfbibouechristian
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdfbibouechristian
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.pptIdriss22
 
Un Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du CacheUn Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du CachePierre Lannoy
 
07 - roles-ansible-automatisation-infrastructure
07 - roles-ansible-automatisation-infrastructure07 - roles-ansible-automatisation-infrastructure
07 - roles-ansible-automatisation-infrastructurebibouechristian
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalSkilld
 

Similaire à Drupal Performance (20)

Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g
 
Drupalcamp Nantes - Optimisations drupal
Drupalcamp Nantes - Optimisations drupalDrupalcamp Nantes - Optimisations drupal
Drupalcamp Nantes - Optimisations drupal
 
LP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptxLP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptx
 
Share point 2013 distributed cache
Share point 2013 distributed cacheShare point 2013 distributed cache
Share point 2013 distributed cache
 
Memcached, une solution de cache par excellence
Memcached, une solution de cache par excellenceMemcached, une solution de cache par excellence
Memcached, une solution de cache par excellence
 
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdflaravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdf
 
[Tuto] Sql backup : Comment sauvegarder une base de données SQL Server dans l...
[Tuto] Sql backup : Comment sauvegarder une base de données SQL Server dans l...[Tuto] Sql backup : Comment sauvegarder une base de données SQL Server dans l...
[Tuto] Sql backup : Comment sauvegarder une base de données SQL Server dans l...
 
Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...
 
Cours jee 1
Cours jee 1Cours jee 1
Cours jee 1
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Comment gérer un site à très haut trafic avec Drupal
Comment gérer un site à très haut trafic avec DrupalComment gérer un site à très haut trafic avec Drupal
Comment gérer un site à très haut trafic avec Drupal
 
Présentation1
Présentation1Présentation1
Présentation1
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf
 
05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf05 - creation-playbook-ansible-stack-lamp.pdf
05 - creation-playbook-ansible-stack-lamp.pdf
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.ppt
 
Apprendre J2EE
Apprendre J2EEApprendre J2EE
Apprendre J2EE
 
Un Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du CacheUn Voyage Au Cœur Du Cache
Un Voyage Au Cœur Du Cache
 
Django compressor
Django compressorDjango compressor
Django compressor
 
07 - roles-ansible-automatisation-infrastructure
07 - roles-ansible-automatisation-infrastructure07 - roles-ansible-automatisation-infrastructure
07 - roles-ansible-automatisation-infrastructure
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances Drupal
 

Drupal Performance

  • 1.
  • 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