SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
La performance de vos applications Drupal
La performance de vos
applications Drupal
OPS : 1ère partie

• Définir les KPI
• Mesurez la performance
• Les best practices OPS

DEV : 2nd part

• Cache TAGS
• Pluggable Asset Optimization
Les KPI
Les KPI métier
Avec des métriques UX et Marketing
– Un temps de réponse maximum, moyen
– Un nombre de requête par seconde (avec un temps de réponse
maximum aussi)
– Nombre de connexions simultanées
– Nombre de visiteur sur une période
– Capacité de montée en charge sur une courte période (ex : 1000
connexions en 5 minutes)
• Etc …
• En gros, les SLA « applicatives »
Les KPI « infra »

Taux d’occupation
des serveurs

Consommation
mémoire

Bande passante
utilisée

Mesurer l’utilisation
des middlewares
Le test de performance
Mesurer la performance
L’objectif
Test de performance
Détecter les leviers pour améliorer la performance

0

L’infrastructure

L’application

Définir une valeur
référence
L’objectif

«

Plus que la charge, c’est le comportement des visiteurs
et leurs incidences sur l’application et l’infrastructure

KPI CLIENTS

SCENARIO

LES POINTS
DE RUPTURE

»
Le scénario
Appliquez un scénario proche de la réalité

eCommerce
Home page
Catégories
Produits
Tunnel de paiement

Presse
Home page
Rubriques/Sous-rubriques
Articles
Commentaires

Institutionnel
Home page
Contact
Articles
Quand réaliser un test de performance ?
En continue dans le planning

avant le passage en production

dans des cycles de build et de run
Quelques outils
Mais aussi
• Siege
• Apache Bench
Résultat d’un test de performance

Profiling
Xdebug + webgrind
Xhprof
La performance avec Drupal
Drupal d’un point de vue OPS

Consommation CPU

La consommation mémoire
des processus Apache (PHP)

La bande passante entre
les frontaux et la base
et/ou memcached et du
coup aussi le nombre de
requête dans MySQL
Où aller chercher de la performance ?
CLIENT
DEV
x 100

de performance
supplémentaire

MOA
Application
Architecture logicielle
Infrastructure

DEVOPS
5 à 10 %

de performance
supplémentaire
L’optimisation d’une requête SQL

CPU taux d’occupation
80% à 10 % d’occupation

DIVISÉ PAR 8
Load average
15 à 2

DIVISÉ PAR 7,5

Accès à innodb en lecture
1,46 m à 295,9 ko

DIVISÉ PAR 5
La dette technique

faible

important
Temps de traitement et de réponse
La protection des ressources
1er rempart

2ème rempart

3ème rempart

4ème rempart

Query Cache
Memcached
APC

100 %

90 %

10 %
Une architecture Drupal scalable

dédié

frontaux

distant

séparée
Les best practice
Désactiver les modules inutiles
Désactiver le support des .htaccess (mais interdire la lecture !)
Charger toutes les règles de rewrite dans la configuration Apache

APC en tant qu’OPCode

Les sessions et la cache
Dans la pratique : test de performance
• Machine virtuelle 4vCPU (E5-2670) / 8Go de RAM
• Debian Wheezy 7.2
– Apache 2.2.22
– PHP 5.4.4
– MySQL 5.5.31

• Drupal 7
– Module View
– Devel pour générer du contenu

•
•
•
•

Méthodologie pour les tests :
Scénario Jmeter sur la home, 10 threads pendant 5 minutes
Dstat pour mesurer la consommation CPU
Gnuplot pour générer les graphes
Test #1
Aucune optimisation
Aucun Best Practice cité

Test #2
htaccess dans apache
Sans les logs
.htaccess désactives

Test #3
Ajout d’APC

521 ms

519 ms

228 ms
TEMPS DE REPONSES DIVISER PAR 2
Test #4
Tuning MySQL
innodb, query cache, table cache

Test #5
APC : apc.stats=0 (le « mythe »)

Test #5
CPU

228 ms

230 ms

CHARGE CPU A 100%
Test #6
On active la cache drupal

Test #6
Charge CPU

22,9ms
TEMPS DE REPONSES DIVISER PAR 10

CHARGE CPU REDUITE SIGNIFICATIVEMENT
Conclusion 1ère partie

Créer et partagez des
référentiels communs
Discutez des impacts

du code sur l’infrastructure
Intégrer la performance
dès le BUILD
Collaborez Dev et Ops
job@oxalide.com

Más contenido relacionado

La actualidad más candente

Track 1 - Atelier 2 - Distribution complète d’un site avec le cdn Amazon Clo...
Track 1 - Atelier 2 - Distribution complète d’un site avec le cdn Amazon Clo...Track 1 - Atelier 2 - Distribution complète d’un site avec le cdn Amazon Clo...
Track 1 - Atelier 2 - Distribution complète d’un site avec le cdn Amazon Clo...Amazon Web Services
 
Architectures.Phpquebec1007
Architectures.Phpquebec1007Architectures.Phpquebec1007
Architectures.Phpquebec1007Damien Seguy
 
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...Marc Gagnon
 
Comment améliorer la performance de vos sites et applications web présen...
Comment améliorer la performance de vos sites et applications web    présen...Comment améliorer la performance de vos sites et applications web    présen...
Comment améliorer la performance de vos sites et applications web présen...Roland Coma
 
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
 
Découvrez les nouveautés produits Nuxeo
Découvrez les nouveautés produits NuxeoDécouvrez les nouveautés produits Nuxeo
Découvrez les nouveautés produits NuxeoNuxeo
 

La actualidad más candente (6)

Track 1 - Atelier 2 - Distribution complète d’un site avec le cdn Amazon Clo...
Track 1 - Atelier 2 - Distribution complète d’un site avec le cdn Amazon Clo...Track 1 - Atelier 2 - Distribution complète d’un site avec le cdn Amazon Clo...
Track 1 - Atelier 2 - Distribution complète d’un site avec le cdn Amazon Clo...
 
Architectures.Phpquebec1007
Architectures.Phpquebec1007Architectures.Phpquebec1007
Architectures.Phpquebec1007
 
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...
 
Comment améliorer la performance de vos sites et applications web présen...
Comment améliorer la performance de vos sites et applications web    présen...Comment améliorer la performance de vos sites et applications web    présen...
Comment améliorer la performance de vos sites et applications web présen...
 
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
 
Découvrez les nouveautés produits Nuxeo
Découvrez les nouveautés produits NuxeoDécouvrez les nouveautés produits Nuxeo
Découvrez les nouveautés produits Nuxeo
 

Similar a La performance de vos applications Drupal

Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesOxalide
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceLudovic Piot
 
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
 
Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Microsoft Technet France
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx FranceMarc Bojoly
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteAZUG FR
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1Marc Bojoly
 
Keynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in ParisKeynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in ParisJason De Oliveira
 
AWS Summit Paris - Track 4 - Session 2 - Migration Cloud, modernisation des a...
AWS Summit Paris - Track 4 - Session 2 - Migration Cloud, modernisation des a...AWS Summit Paris - Track 4 - Session 2 - Migration Cloud, modernisation des a...
AWS Summit Paris - Track 4 - Session 2 - Migration Cloud, modernisation des a...Amazon Web Services
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Nazih Heni
 
Integration Drupal systemes d'informations
Integration Drupal systemes d'informationsIntegration Drupal systemes d'informations
Integration Drupal systemes d'informationsneuros
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Vincent Biret
 
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...Modern Workplace Conference Paris
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxMarc Bojoly
 
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
 
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...Oxalide
 
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureTechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureThomas Conté
 

Similar a La performance de vos applications Drupal (20)

Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 
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
 
Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
 
Cerberus Testing
Cerberus TestingCerberus Testing
Cerberus Testing
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1
 
Perf university
Perf universityPerf university
Perf university
 
Keynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in ParisKeynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in Paris
 
AWS Summit Paris - Track 4 - Session 2 - Migration Cloud, modernisation des a...
AWS Summit Paris - Track 4 - Session 2 - Migration Cloud, modernisation des a...AWS Summit Paris - Track 4 - Session 2 - Migration Cloud, modernisation des a...
AWS Summit Paris - Track 4 - Session 2 - Migration Cloud, modernisation des a...
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"
 
Integration Drupal systemes d'informations
Integration Drupal systemes d'informationsIntegration Drupal systemes d'informations
Integration Drupal systemes d'informations
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
 
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptx
 
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]
 
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...
Les bonnes pratiques d'une architecture logicielle et infrastructure de l'héb...
 
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureTechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
 

Más de Oxalide

Terraform & Vault - Un duo d'enfer!
Terraform & Vault - Un duo d'enfer!Terraform & Vault - Un duo d'enfer!
Terraform & Vault - Un duo d'enfer!Oxalide
 
Workshop Docker & Kubernetes - Oxalide Academy
Workshop Docker & Kubernetes - Oxalide AcademyWorkshop Docker & Kubernetes - Oxalide Academy
Workshop Docker & Kubernetes - Oxalide AcademyOxalide
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyOxalide
 
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...Oxalide
 
Docker compose
Docker composeDocker compose
Docker composeOxalide
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide
 
Varnish & blue/green deployments
Varnish & blue/green deploymentsVarnish & blue/green deployments
Varnish & blue/green deploymentsOxalide
 
ISO 27001 est-il soluble dans l'agilité ?
ISO 27001 est-il soluble dans l'agilité ?ISO 27001 est-il soluble dans l'agilité ?
ISO 27001 est-il soluble dans l'agilité ?Oxalide
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide
 
Paris hackers Meetup #12 - How to handle large audience
Paris hackers Meetup #12 - How to handle large audienceParis hackers Meetup #12 - How to handle large audience
Paris hackers Meetup #12 - How to handle large audienceOxalide
 
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...Oxalide
 
201211 drupagora hostingdrupal
201211 drupagora hostingdrupal201211 drupagora hostingdrupal
201211 drupagora hostingdrupalOxalide
 
Cloud & physique, mauvaises et bonnes solutions
Cloud & physique, mauvaises et bonnes solutionsCloud & physique, mauvaises et bonnes solutions
Cloud & physique, mauvaises et bonnes solutionsOxalide
 
Comprendre pour choisir son hébergement
Comprendre pour choisir son hébergementComprendre pour choisir son hébergement
Comprendre pour choisir son hébergementOxalide
 
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...Oxalide
 
Performance barcampfinal
Performance barcampfinalPerformance barcampfinal
Performance barcampfinalOxalide
 
Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009Oxalide
 
Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009Oxalide
 
Clusif cloud-2010-datacenter
Clusif cloud-2010-datacenterClusif cloud-2010-datacenter
Clusif cloud-2010-datacenterOxalide
 
Clusif cloud-2010-securite
Clusif cloud-2010-securiteClusif cloud-2010-securite
Clusif cloud-2010-securiteOxalide
 

Más de Oxalide (20)

Terraform & Vault - Un duo d'enfer!
Terraform & Vault - Un duo d'enfer!Terraform & Vault - Un duo d'enfer!
Terraform & Vault - Un duo d'enfer!
 
Workshop Docker & Kubernetes - Oxalide Academy
Workshop Docker & Kubernetes - Oxalide AcademyWorkshop Docker & Kubernetes - Oxalide Academy
Workshop Docker & Kubernetes - Oxalide Academy
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide Academy
 
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...
Meetup Paris Monitoring #9 : Un système de gestion et de visualisation des al...
 
Docker compose
Docker composeDocker compose
Docker compose
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Varnish & blue/green deployments
Varnish & blue/green deploymentsVarnish & blue/green deployments
Varnish & blue/green deployments
 
ISO 27001 est-il soluble dans l'agilité ?
ISO 27001 est-il soluble dans l'agilité ?ISO 27001 est-il soluble dans l'agilité ?
ISO 27001 est-il soluble dans l'agilité ?
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
 
Paris hackers Meetup #12 - How to handle large audience
Paris hackers Meetup #12 - How to handle large audienceParis hackers Meetup #12 - How to handle large audience
Paris hackers Meetup #12 - How to handle large audience
 
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
AgoraCMS 2014 : Les bonnes pratiques de l'hébergement d'un CMS pour une meill...
 
201211 drupagora hostingdrupal
201211 drupagora hostingdrupal201211 drupagora hostingdrupal
201211 drupagora hostingdrupal
 
Cloud & physique, mauvaises et bonnes solutions
Cloud & physique, mauvaises et bonnes solutionsCloud & physique, mauvaises et bonnes solutions
Cloud & physique, mauvaises et bonnes solutions
 
Comprendre pour choisir son hébergement
Comprendre pour choisir son hébergementComprendre pour choisir son hébergement
Comprendre pour choisir son hébergement
 
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...
Gérer 100 000 visites par jour avec Magento - Les enjeux e-commerce de Prisma...
 
Performance barcampfinal
Performance barcampfinalPerformance barcampfinal
Performance barcampfinal
 
Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009
 
Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009Clusif panoramadelacybercrimalite2009
Clusif panoramadelacybercrimalite2009
 
Clusif cloud-2010-datacenter
Clusif cloud-2010-datacenterClusif cloud-2010-datacenter
Clusif cloud-2010-datacenter
 
Clusif cloud-2010-securite
Clusif cloud-2010-securiteClusif cloud-2010-securite
Clusif cloud-2010-securite
 

La performance de vos applications Drupal

  • 1. La performance de vos applications Drupal
  • 2.
  • 3. La performance de vos applications Drupal OPS : 1ère partie • Définir les KPI • Mesurez la performance • Les best practices OPS DEV : 2nd part • Cache TAGS • Pluggable Asset Optimization
  • 5. Les KPI métier Avec des métriques UX et Marketing – Un temps de réponse maximum, moyen – Un nombre de requête par seconde (avec un temps de réponse maximum aussi) – Nombre de connexions simultanées – Nombre de visiteur sur une période – Capacité de montée en charge sur une courte période (ex : 1000 connexions en 5 minutes) • Etc … • En gros, les SLA « applicatives »
  • 6. Les KPI « infra » Taux d’occupation des serveurs Consommation mémoire Bande passante utilisée Mesurer l’utilisation des middlewares
  • 7. Le test de performance Mesurer la performance
  • 8. L’objectif Test de performance Détecter les leviers pour améliorer la performance 0 L’infrastructure L’application Définir une valeur référence
  • 9. L’objectif « Plus que la charge, c’est le comportement des visiteurs et leurs incidences sur l’application et l’infrastructure KPI CLIENTS SCENARIO LES POINTS DE RUPTURE »
  • 10. Le scénario Appliquez un scénario proche de la réalité eCommerce Home page Catégories Produits Tunnel de paiement Presse Home page Rubriques/Sous-rubriques Articles Commentaires Institutionnel Home page Contact Articles
  • 11. Quand réaliser un test de performance ? En continue dans le planning avant le passage en production dans des cycles de build et de run
  • 12. Quelques outils Mais aussi • Siege • Apache Bench
  • 13. Résultat d’un test de performance Profiling Xdebug + webgrind Xhprof
  • 15. Drupal d’un point de vue OPS Consommation CPU La consommation mémoire des processus Apache (PHP) La bande passante entre les frontaux et la base et/ou memcached et du coup aussi le nombre de requête dans MySQL
  • 16. Où aller chercher de la performance ? CLIENT DEV x 100 de performance supplémentaire MOA Application Architecture logicielle Infrastructure DEVOPS 5 à 10 % de performance supplémentaire
  • 17. L’optimisation d’une requête SQL CPU taux d’occupation 80% à 10 % d’occupation DIVISÉ PAR 8 Load average 15 à 2 DIVISÉ PAR 7,5 Accès à innodb en lecture 1,46 m à 295,9 ko DIVISÉ PAR 5
  • 18. La dette technique faible important Temps de traitement et de réponse
  • 19. La protection des ressources 1er rempart 2ème rempart 3ème rempart 4ème rempart Query Cache Memcached APC 100 % 90 % 10 %
  • 20. Une architecture Drupal scalable dédié frontaux distant séparée
  • 21. Les best practice Désactiver les modules inutiles Désactiver le support des .htaccess (mais interdire la lecture !) Charger toutes les règles de rewrite dans la configuration Apache APC en tant qu’OPCode Les sessions et la cache
  • 22. Dans la pratique : test de performance • Machine virtuelle 4vCPU (E5-2670) / 8Go de RAM • Debian Wheezy 7.2 – Apache 2.2.22 – PHP 5.4.4 – MySQL 5.5.31 • Drupal 7 – Module View – Devel pour générer du contenu • • • • Méthodologie pour les tests : Scénario Jmeter sur la home, 10 threads pendant 5 minutes Dstat pour mesurer la consommation CPU Gnuplot pour générer les graphes
  • 23. Test #1 Aucune optimisation Aucun Best Practice cité Test #2 htaccess dans apache Sans les logs .htaccess désactives Test #3 Ajout d’APC 521 ms 519 ms 228 ms TEMPS DE REPONSES DIVISER PAR 2
  • 24. Test #4 Tuning MySQL innodb, query cache, table cache Test #5 APC : apc.stats=0 (le « mythe ») Test #5 CPU 228 ms 230 ms CHARGE CPU A 100%
  • 25. Test #6 On active la cache drupal Test #6 Charge CPU 22,9ms TEMPS DE REPONSES DIVISER PAR 10 CHARGE CPU REDUITE SIGNIFICATIVEMENT
  • 26. Conclusion 1ère partie Créer et partagez des référentiels communs Discutez des impacts du code sur l’infrastructure
  • 27. Intégrer la performance dès le BUILD Collaborez Dev et Ops