SlideShare une entreprise Scribd logo
1  sur  79
Télécharger pour lire hors ligne
Mesurer la
                 performance des
                 applications avec
Brooks Elliott
                       JMeter
                        Claude Falguière
                 Au Lyon JUG le 21 Décembre 2010
Copyright notice

●   Vous êtes libre de :                               http://creativecommons.org/licenses/by/3.0/

    ●   Reproduire, distribuer et communiquer cette création au public
    ●   Modifier cette création
●   Selon les conditions suivantes :
    ●   Paternité. Vous devez citer le nom de l'auteur original de la
        manière indiquée par l'auteur de l'oeuvre ou le titulaire des droits
        qui vous confère cette autorisation (mais pas d'une manière qui
        suggérerait qu'ils vous soutiennent ou approuvent votre
        utilisation de l'oeuvre).
    ●   Rien dans ce contrat ne diminue ou ne restreint le droit moral de
        l'auteur ou des auteurs.

                              Performances et JMeter - Falguière                               2
Claude Falguière
                                                          @cfalguiere

   Consultante
Co-fondatrice
                Membre de l'équipe


                     Performances et JMeter - Falguière                 3
User
experience
   Performances et JMeter - Falguière   4
Subjectif
0,5 s   1s                                        10 s




              Complexité supposée
              Ordre d'affichage
              Stabilité
             Performances et JMeter - Falguière          5
Paul Foot

                                       Supporter l'effort
                                       Tenir la durée

                                                   Un
                                                marathon
                                                  ça se
Martineric                                      prépare !
                                                        Paul Foot
                 Performances et JMeter - Falguière         6
S(t)imulation
     Performances et JMeter - Falguière   7
Le test de performance

   Quels vont faire
   les utilisateurs en
                                      Quels sont volumétries ?
   production ?
                                      Les dimensionnements ?



                Quels sont les risques à vérifier ?
                les critères à mesurer ?

                   Performances et JMeter - Falguière        8
La Représentativité des tests



                              Quoi ? Combien?

                 Qui ? Quoi ?
                 Où ? Quand ? Combien ?
                 Comment ? Pourquoi ?
                 Performances et JMeter - Falguière   9
Qui ? Quoi ?

                Consultations
 MAJ                                                     Fréquent
employé

                                                         ou
                                                         Vital
Charges                           Paie
                                                         ou
          Recherche complexe                             Risqué
                    Performances et JMeter - Falguière              10
Combien ? Quand ? Ou ?


Quelle
heure ?

Quel
jour ?

Pics
               Performances et JMeter - Falguière   11
Pourquoi ?


 Les enjeux                              Les coûts




             Performances et JMeter - Falguière      12
Les Critères de succès

  Temps de réponse
  et
  Disponibilité, Stabilité
  Robustesse
  Vieillissement
  Résistance à l'effet Twitter
                                                        GALERIEopWEG




  Consommation de ressources
                   Performances et JMeter - Falguière           13
JMeter

  Performances et JMeter - Falguière   14
Des outils

                                  http://jakarta.apache.org/jmeter/



  Projet Apache Jakarta
  Script en XML et Script JVM
  Extensible
  Multiprotocole
  Enregistrement des scénarios Web
  Gestion du cache et des cookies
               Performances et JMeter - Falguière                     15
Démo
 Concepts de base




Performances et JMeter - Falguière   16
L'IHM
                  Test Plan          Eléments exécutés lorsque
                                     l'on lance le plan de test
                  Thread Group
                                                    Nombre
                                                    d'utilisateurs et
                                                    d'itérations
                      Sampler
                                              Action
                     Listeners                Visualisation des résultats
      Workbench

Eléments Temporaires
                        Performances et JMeter - Falguière              17
Scripts HTTP
                      (1) Enregistrer
                    HTTP Proxy
     Navigateur



           Script


         (2) Variabiliser


  (3) Rejouer

                       Performances et JMeter - Falguière   18
Démo
 Enregistrer un scénario
 Et variabiliser


Performances et JMeter - Falguière   19
Les concepts                                                       Paramètres
                   Configuration                                    communs,
                                                                    variables, jeux
                                                                    de données
  Bloc de
  contrôle
                   Sampler
                                      Emission des requêtes
Logic Controller




                   Listeners             Visualisation des résultats


                               Performances et JMeter - Falguière                     20
Mesurer
Mesurer
Mesurer
  Performances et JMeter - Falguière   21
Profil de charge

                   Plateau
 Ramp                                                   Ramp
  Up                                                    Down




                                             Thread Group 1
                                             Thread Group 2
                   Performances et JMeter - Falguière         22
Avoir une stratégie de test
Que veut on évaluer ?
Quels sont les enjeux ?
           Quels scénarios?

   Combien d 'utilisateurs ?
   Combien de temps ?
   Quel profil de charge ?

             Environnement requis ?
             Jeux de données?
                 Performances et JMeter - Falguière   23
Durée du test

Répéter
→ Aléas de mesure
→ Variabilité des données
Isoler le rampup
→ initialisations
Durer
→ Chargement des caches
→ Détecter les fuites
                    Performances et JMeter - Falguière   24
1 action
Des exigences                                               4h    /10 s
                                                                   1000
               Spécifier
              Concevoir
             Implémenter
               Exécuter

Des milliers de relevés                  1 440 000
          Analyser et Valider             relevés
            Comprendre

                                                agréger
             Synthétiser
              Restituer
Quelques chiffres
                       Performances et JMeter - Falguière              25
La moyenne n'est pas un bon indicateur




   0,5 s   1s


           Moyenne
            1,2s

                Performances et JMeter - Falguière   26
La moyenne n'est pas un bon indicateur

 Inconscient
                                Marquant

   0,5 s   1s                                                 Rare
           Moyenne                                            10%
                                                      90%
            1,2s                                     sont
                                                     < 3,5s
                Performances et JMeter - Falguière                  27
La statistique est votre ami
            > data <- rnorm(100,2)+2




                       Histogram of ts                                            Cumulative histogram of ts




                                                                          100
            20




                                                                          80
Frequency




                                                              Frequency
            15




                                                                          60
            10




                                                                          40
                                                                          20
            5
            0




                                                                          0
                  2     3        4       5             6                          2      3        4     5      6

                            Duration                                                         Duration




                                             Performances et JMeter - Falguière                                    28
Les quantiles et les SLA
> summary(data)                                                                        > quantile(data,0.95)
   Min. 1st Qu.   Median                Mean 3rd Qu.                     Max.               95%
  1.779   3.203    3.834               3.840   4.483                    5.966          5.408672


                                                          Cumulative histogram of ts




                                        100
 Quantile 90%
                                        80
                           Frequency


                                        60
                                        40
                                        20
                                        0




                                                                   SLA
                                                          2                   3        4      5       6

                                                                                  Duration


                                         Performances et JMeter - Falguière                               29
Démo
 Profil et résultat




Performances et JMeter - Falguière   30
Faire parler la distribution

                                        Quelques mauvais
                                        temps isolés

                                           Temps très
                                           variables


                                           Bimodal
                  Performances et JMeter - Falguière       31
Les biais de perception
              6
              5


                                                                                      OK
   Duration

              4




                                                                                           KO
              3
              2




                  0   20   40          60   80    100

                                Time
              6
              5
              4




                                                                                      K0
   Duration

              3




                                                                                           OK
              2
              1
              0




                  0   20   40          60   80    100

                                Time
                                                 Performances et JMeter - Falguière             32
Tiens au fait le critère ...


REQ-1234 La page
d'accueil doit s'afficher en
moins de 600 ms
                  Est ce qu'on
                  parle bien de la
                  même chose ?
                    Performances et JMeter - Falguière   33
Douter
 Performances et JMeter - Falguière   34
Garbage In → Garbage Out
      Le résultat du test dépend
   totalement des scénarios définis
       et de leur implémentation




                     Biais
Martineric

               Performances et JMeter - Falguière   35
Des exigences
                               Spécifier
                              Concevoir
                             Implémenter
                               Exécuter

Des milliers de relevés

                     Analyser et Valider
                       Comprendre
                        Synthétiser
                         Restituer
Quelques chiffres
              Performances et JMeter - Falguière   36
Groupe 1                                 Groupe 2



Trouvez des biais                    Trouvez des biais
qui rendront le                      qui rendront le
résultat meilleur                    résultat plus mauvais

               Performances et JMeter - Falguière      37
Volumétries


 Volumes trop faibles                                Volumes trop importants
    Requêtes moins coûteuses                                     Requête plus coûteuses
 Simplifier la navigation                            Oublier les temps d'attentes
    Moins de requêtes                                            Trop de requêtes
                                                     Monter trop vite en charge

 Avoir les bonnes                                                Pas encore les ressources

   volumétries                                       Itération très courtes
                                                                 Trop de sessions
                            Performances et JMeter - Falguière                         38
Jeux de données et cache


 Mots clés exacts                                             Mots clés génériques (*)
   1 seul résultat                                                Trop de résultats
 Toujours les mêmes mots clés                                 Trop de mots clés différents
   Toujours trouvé dans le cache                                  Lessive le cache
                                                              Réutiliser les mêmes valeurs
   Avoir la bonne                                                 Contention
    structure de                                              Tests trop court avec cache
      données                                                     Cache vide
                         Performances et JMeter - Falguière                              39
Gestion des erreurs


 Ignorer les erreurs                                         Ignorer les limites externes
    Faux positifs                                                Faux négatifs
 Test très court
    Pas le temps de voir les fuites


                        En bref, c'est pas
                             facile !
                        Performances et JMeter - Falguière                             40
Démo
 Compléter le scénario




Performances et JMeter - Falguière   41
Les concepts
                   Configuration                 Jeux de données
                   Pre-Processor                Préparation de
                                                données
                   Timers         Temps d'attente
Logic Controller
                   Sampler      Action
                   Post Processor  Extraire des données
                                   du résultat
                   Assertions             Vérifier le résultat

                   Listeners                 Visualisation
                             Performances et JMeter - Falguière    42
JMeter dans la vrai vie

   Désactiver les listeners coûteux
   → laisser seulement les agrégats


   Ou option –non-gui et paramétrage
   par variables
   Génère un fichier XML .jtl ou CSV

                 Performances et JMeter - Falguière   43
JMeter dans la vrai vie

   Gérer la mémoire de JMeter et
   multi-instance si problème de charge
   Vérifier la cible, les scripts, les
   données
   Warmup / T étalon / T en Charge
             ir         ir


                 Performances et JMeter - Falguière   44
JMeter dans la vrai vie

   Valider le résultat ?
   Retester ?
     Confirmer les résultats
     Analyser et tester les hypothèses
     Isoler les facteurs
     Augmenter les niveaux de trace
                 Performances et JMeter - Falguière   45
Partager
   Performances et JMeter - Falguière   46
Partager le processus
    Comprendre les résultats
Dev Partager les solutions   Client



           Etablir La confiance
   Ops       dans le résultat
             Performances et JMeter - Falguière   47
Agile jusqu'à la production

  devops
  Réconcilier
  Developpement et
  Opérations
                                       Google User Groups
  Continuous                           - Devopsfr
  Deploiement                          - Paris Devops
                                       - Lille Devops
                 Performances et JMeter - Falguière     48
Measure,
Don't guess
    Performances et JMeter - Falguière   49
Il faut faire des                              Si vous avez
procédures stockées,                              un marteau
Hibernate c'est pourri
                                               tout ressemble
                                                     à un clou
            Changez d'OS,
          Windows ça plante
            tout le temps


       Il faut remplacer
       Struts par Spring
                                         Sic

          Performances et JMeter - Falguière                50
Don't shoot in the dark !


    J ne me précipiterai pas sur mon Eclipse
     e
    J ne me précipiterai pas sur mon Eclipse
     e
    J ne me précipiterai pas sur mon Eclipse
     e
    J ne me précipiterai pas sur mon Eclipse
     e
    J ne me précipiterai pas sur mon Eclipse
     e
    J ne me précipiterai pas sur mon Eclipse
     e
    J ne me précipiterai pas sur mon Eclipse
     e
                  Performances et JMeter - Falguière   51
La cible
                                                              Vous êtes ici
L'environnement de dev




                         Performances et JMeter - Falguière             52
Comportement sous stress

 Individu       Groupe                                 Foule




                                                      Ressources
               Concurrence                             limitées


 Répétition   Problèmes de                            Saturation
              cohabitation
                 Performances et JMeter - Falguière                53
Combien ? Où ?

         Round Trip




                 Performances et JMeter - Falguière   54
Latence
  Navigateur                                                     Serveur
          GET /

                  Requête
                                                           ACK


                  Latence
                                                    Premier octet

                  Réponse
                                                    Dernier octet

                      Performances et JMeter - Falguière                   55
Combien ? Où ?
   Navigateur




   Temps
d'affichage




                  Performances et JMeter - Falguière   56
Profilage In Browser

FireBug Add -o ns
Chrome Developer Tools

 YSlow A nalyse
 Google Page Speed
 AOL Page Test

    Charles, HTTP
    Fiddler P  roxy
                 Performances et JMeter - Falguière   57
Démo
 Charles et YSlow




Performances et JMeter - Falguière   58
Combien ? Où ?




                                                           Temps par tier
             HTTP
              Phases JSF                              Temps par couche
               Domaine
                JDBC
                 Performances et JMeter - Falguière                      59
atio n
Exemple
         Exploit
  HTTP   d u log                                    18s
  JSF RESTORE_VIEW                                   0s
  JSF APPLY_REQUEST_VALUES                           0s
  JSF PROCESS_VALIDATIONS                            0s
  JSF UPDATE_MODEL_VALUES                            0s
  JSF INVOKE_APPLICATION                            17s
  JSF RENDER_RESPONSE                                0s
  AOP myapp.persistence                             16s



          Logger AOP sur myapplication.persistence.*
          myapp.persistence.contrat.Contrat.save()         8s

          P6Spy
          500 requêtes durant la même période


                      Performances et JMeter - Falguière        60
Introspection J2EE
                            D rivers JDBC
Par logs                    virtuels
 - Logs Hibernate                     - P6SPy
 - Access Log                         - Log4JDBC
                                      …
 - listener HTTP
 - listener phases JSF                       Pro filers
                                             Jav a EE
 - AOP                                - InfraRed
 - Perf4J                             - PerformaSure
                Performances et JMeter - Falguière        61
Améliorer
   Performances et JMeter - Falguière   62
Pourquoi ?

Où est passé le
temps de réponse ?

Quels sont les
composants
impliqués ?

Quelles sont les
informations que
je veux obtenir ?                                     David Reece

                 Performances et JMeter - Falguière           63
Comportement sous stress

 Individu       Groupe                                 Foule




                                                      Ressources
               Concurrence                             limitées


 Répétition   Problèmes de                            Saturation
              cohabitation
                 Performances et JMeter - Falguière                64
Lock/Attente      en mn
              Time out     en s ou mn

              Service distant                       200 ms
Optimisez     Requête SQL                            50 ms
vôtre temps   Réseau local                           20 ms

              GC                                     en ms
              Accès disque                           en ms

              Exécution de code en ns
               Performances et JMeter - Falguière            65
Tailles de boîtes
   Foule




   Ressources
    limitées
                              Fuite

      Saturation

                    Attente                              Time-out
                    Performances et JMeter - Falguière              66
Les limites physiques
 Charge (queue length) ou %CPU
 Swap In ou Mémoire disponible
 Usage disque       fmo n,
                    Per     sysinternals
                    vmst at, iostat,
  Temps             Sysstat (sar)
  Nombre de connexions
  Taux d'erreur Tr  aceRoute, netstat,
                  tcpdump, wireshark
                 Performances et JMeter - Falguière   67
Tailles de pools



       Workers
                                  Pool de
                                threads du
                                                                 Fuites
                                   Web                    Pool de
                                 container              connexions
                                                           JDBC




         T ux Ac
          a     tive / T tal
                        o
                   Performances et JMeter - Falguière                     68
Monitoring

Apache : module server-status

Java EE : JMX
 MBeans du serveur d'applications
 MBeans custom

Les monitor Jmeter
 Tomcat
 Custom
                Performances et JMeter - Falguière   69
Démo
 Tomcat et le Monitor




Performances et JMeter - Falguière   70
La mémoire virtuelle
        Via JMX
        GC Overhead ou
        Temps passé en GC / Uptime process
                                 Via le log
                                 -verbose:gc + GCViewer
                                                        Via le système
                                                        % CPU
                                                        Swap In




                   Performances et JMeter - Falguière                    71
Concurrence
                    ad D ump
 Groupe       Th re
               eap D   ump
              H
                                 CA,
                           AT, J er
                        + M
                        Health Ce nt
Concurrence
                Verrous
                (Transactionnel,     Attentes
                Synchronized)
   Problèmes de         Comportement
   multithreading       instable
                 Performances et JMeter - Falguière   72
Profilage

  Individu   Temps étalon et répartition

           Nombre de requêtes
           Taille des pages
Pro filers Nombre de lignes de réponse

  Logs       Ressources consommées

  e a ns JMX
Mb
                 Performances et JMeter - Falguière   73
Atteindre
 la lune
   Performances et JMeter - Falguière   74
Le test n'est qu'une
  S'entrainer       simulation de la vrai vie

                          Détecter les défauts de
                            montée en charge
                                Améliorer
                          Définir la surveillance
empreinte




                Performances et JMeter - Falguière   75
 Fonctionnalités
           Maintenabilité
               Robustesse
Définir ses      Scalabilité
priorités         Performance
                   unitaire
              Performances et JMeter - Falguière   76
Ne pas rester bloqué sur la notion de
       représentativité
Test sur étalon
Test des contentions
Test de robustesse                                     Partir tôt
Test de scalabilité
Test de vieillissement

Test qualifiant                                        Joachim S. Müller (retouchée)
                  Performances et JMeter - Falguière                           77
Tu n'aurais
pas oublié
un truc ?
    Performances et JMeter - Falguière   78
Merci pour votre
   attention

Des questions ?

                                          @cfalguiere

     Performances et JMeter - Falguière             79

Contenu connexe

Tendances

Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance Testing
Atul Pant
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
Bhojan Rajan
 

Tendances (20)

Apache jMeter
Apache jMeterApache jMeter
Apache jMeter
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance Testing
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
 
Load testing with J meter
Load testing with J meterLoad testing with J meter
Load testing with J meter
 
Jmeter
JmeterJmeter
Jmeter
 
Jmeter From Scratch
Jmeter From ScratchJmeter From Scratch
Jmeter From Scratch
 
Performance testing and reporting with JMeter
Performance testing and reporting with JMeterPerformance testing and reporting with JMeter
Performance testing and reporting with JMeter
 
JMeter Load Testing | Load Testing Using JMmeter | JMeter Tutorial For Beginn...
JMeter Load Testing | Load Testing Using JMmeter | JMeter Tutorial For Beginn...JMeter Load Testing | Load Testing Using JMmeter | JMeter Tutorial For Beginn...
JMeter Load Testing | Load Testing Using JMmeter | JMeter Tutorial For Beginn...
 
JMeter Intro
JMeter IntroJMeter Intro
JMeter Intro
 
Introduction to jmeter
Introduction to jmeterIntroduction to jmeter
Introduction to jmeter
 
Automation - Apache JMeter
Automation - Apache JMeterAutomation - Apache JMeter
Automation - Apache JMeter
 
Performance testing with JMeter
Performance testing with JMeterPerformance testing with JMeter
Performance testing with JMeter
 
Performance testing using jmeter
Performance testing using jmeterPerformance testing using jmeter
Performance testing using jmeter
 
QA. Load Testing
QA. Load TestingQA. Load Testing
QA. Load Testing
 
Perofrmance testing and apache jmeter
Perofrmance testing and apache jmeterPerofrmance testing and apache jmeter
Perofrmance testing and apache jmeter
 
Introduction to blazemeter and jmeter
Introduction to blazemeter and jmeterIntroduction to blazemeter and jmeter
Introduction to blazemeter and jmeter
 
Jmeter vs loadrunner vs neoload
Jmeter vs loadrunner vs neoloadJmeter vs loadrunner vs neoload
Jmeter vs loadrunner vs neoload
 
Basic of jMeter
Basic of jMeter Basic of jMeter
Basic of jMeter
 
Tests de performances
Tests de performancesTests de performances
Tests de performances
 
Performance testing and j meter
Performance testing and j meterPerformance testing and j meter
Performance testing and j meter
 

En vedette (7)

Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
 
H2O , Le machine learning sans coder ou presque - Devoxx france 2016
H2O , Le machine learning sans coder ou presque - Devoxx france 2016H2O , Le machine learning sans coder ou presque - Devoxx france 2016
H2O , Le machine learning sans coder ou presque - Devoxx france 2016
 
Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012
 
Java Basics for selenium
Java Basics for seleniumJava Basics for selenium
Java Basics for selenium
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
PAUG - Intégration Continue - Décembre 2013
PAUG - Intégration Continue - Décembre 2013PAUG - Intégration Continue - Décembre 2013
PAUG - Intégration Continue - Décembre 2013
 
Tests de performances d'une application Java EE
Tests de performances d'une application Java EETests de performances d'une application Java EE
Tests de performances d'une application Java EE
 

Similaire à Mesurer les performances avec JMeter

Intro sur les tests unitaires
Intro sur les tests unitairesIntro sur les tests unitaires
Intro sur les tests unitaires
PHPPRO
 
Agilité et les Tests Utilisateurs
Agilité et les Tests UtilisateursAgilité et les Tests Utilisateurs
Agilité et les Tests Utilisateurs
Sat Philora
 

Similaire à Mesurer les performances avec JMeter (15)

Agile Tour Nantes 2011 - Rémy génin - retours d'expérience sur 4 ans d'agilit...
Agile Tour Nantes 2011 - Rémy génin - retours d'expérience sur 4 ans d'agilit...Agile Tour Nantes 2011 - Rémy génin - retours d'expérience sur 4 ans d'agilit...
Agile Tour Nantes 2011 - Rémy génin - retours d'expérience sur 4 ans d'agilit...
 
Université de la performance
Université de la performanceUniversité de la performance
Université de la performance
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1
 
Session #2 du workshop sur la performance en environnement de production
Session #2 du workshop sur la performance en environnement de productionSession #2 du workshop sur la performance en environnement de production
Session #2 du workshop sur la performance en environnement de production
 
Intro sur les tests unitaires
Intro sur les tests unitairesIntro sur les tests unitaires
Intro sur les tests unitaires
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderne
 
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
 
Agilité et les Tests Utilisateurs
Agilité et les Tests UtilisateursAgilité et les Tests Utilisateurs
Agilité et les Tests Utilisateurs
 
Drools et les moteurs de règles
Drools et les moteurs de règlesDrools et les moteurs de règles
Drools et les moteurs de règles
 
Ferpection pour meetup Qualité des Applications Mobiles
Ferpection pour meetup Qualité des Applications MobilesFerpection pour meetup Qualité des Applications Mobiles
Ferpection pour meetup Qualité des Applications Mobiles
 
Découvrez enfin ce qui est réellement vu !
Découvrez enfin ce qui est réellement vu !Découvrez enfin ce qui est réellement vu !
Découvrez enfin ce qui est réellement vu !
 
Test de charge avec Apache JMeter
Test de charge avec Apache JMeterTest de charge avec Apache JMeter
Test de charge avec Apache JMeter
 
Les business analystes face à l'agilité
Les business analystes face à l'agilitéLes business analystes face à l'agilité
Les business analystes face à l'agilité
 
Final
FinalFinal
Final
 

Plus de Claude Falguiere

Pres android nuit de l'info v3
Pres android nuit de l'info v3Pres android nuit de l'info v3
Pres android nuit de l'info v3
Claude Falguiere
 
Analyse de données avec Incanter
Analyse de données avec IncanterAnalyse de données avec Incanter
Analyse de données avec Incanter
Claude Falguiere
 
Deploiement continu breizh camp
Deploiement continu breizh campDeploiement continu breizh camp
Deploiement continu breizh camp
Claude Falguiere
 
No sql pour valtech tech days
No sql pour valtech tech daysNo sql pour valtech tech days
No sql pour valtech tech days
Claude Falguiere
 

Plus de Claude Falguiere (20)

Pres perf human talks mars 2015
Pres perf human talks mars 2015Pres perf human talks mars 2015
Pres perf human talks mars 2015
 
Devoxx 2014 monitoring
Devoxx 2014 monitoringDevoxx 2014 monitoring
Devoxx 2014 monitoring
 
Devoxx 2014 Monitoring
Devoxx 2014 Monitoring Devoxx 2014 Monitoring
Devoxx 2014 Monitoring
 
Presentation devoxx4kids à iut-agile
Presentation devoxx4kids à iut-agilePresentation devoxx4kids à iut-agile
Presentation devoxx4kids à iut-agile
 
Le monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big DataLe monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big Data
 
Présentation du user group Duchess France au GDG de Nantes
Présentation du user group Duchess France au GDG de NantesPrésentation du user group Duchess France au GDG de Nantes
Présentation du user group Duchess France au GDG de Nantes
 
Présentation de Page Speed au GDG de Nantes
Présentation de Page Speed au GDG de NantesPrésentation de Page Speed au GDG de Nantes
Présentation de Page Speed au GDG de Nantes
 
Présentation Performances Montpellier
Présentation Performances Montpellier Présentation Performances Montpellier
Présentation Performances Montpellier
 
Pres android nuit de l'info v3
Pres android nuit de l'info v3Pres android nuit de l'info v3
Pres android nuit de l'info v3
 
La marmite Intro session NoSQL
La marmite Intro session NoSQLLa marmite Intro session NoSQL
La marmite Intro session NoSQL
 
Analyse de données avec Incanter
Analyse de données avec IncanterAnalyse de données avec Incanter
Analyse de données avec Incanter
 
Analyse de données avec Incanter
Analyse de données avec IncanterAnalyse de données avec Incanter
Analyse de données avec Incanter
 
Incanter bigdata jsc2012
Incanter bigdata jsc2012Incanter bigdata jsc2012
Incanter bigdata jsc2012
 
Quickie Incanter/Clojure à Devoxx France 2012
Quickie Incanter/Clojure à Devoxx France 2012Quickie Incanter/Clojure à Devoxx France 2012
Quickie Incanter/Clojure à Devoxx France 2012
 
Diagnostic performances
Diagnostic performancesDiagnostic performances
Diagnostic performances
 
Diagnostic performances
Diagnostic performancesDiagnostic performances
Diagnostic performances
 
Usine logicielle ios
Usine logicielle iosUsine logicielle ios
Usine logicielle ios
 
Deploiement continu breizh camp
Deploiement continu breizh campDeploiement continu breizh camp
Deploiement continu breizh camp
 
Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011
 
No sql pour valtech tech days
No sql pour valtech tech daysNo sql pour valtech tech days
No sql pour valtech tech days
 

Mesurer les performances avec JMeter

  • 1. Mesurer la performance des applications avec Brooks Elliott JMeter Claude Falguière Au Lyon JUG le 21 Décembre 2010
  • 2. Copyright notice ● Vous êtes libre de : http://creativecommons.org/licenses/by/3.0/ ● Reproduire, distribuer et communiquer cette création au public ● Modifier cette création ● Selon les conditions suivantes : ● Paternité. Vous devez citer le nom de l'auteur original de la manière indiquée par l'auteur de l'oeuvre ou le titulaire des droits qui vous confère cette autorisation (mais pas d'une manière qui suggérerait qu'ils vous soutiennent ou approuvent votre utilisation de l'oeuvre). ● Rien dans ce contrat ne diminue ou ne restreint le droit moral de l'auteur ou des auteurs. Performances et JMeter - Falguière 2
  • 3. Claude Falguière @cfalguiere Consultante Co-fondatrice Membre de l'équipe Performances et JMeter - Falguière 3
  • 4. User experience Performances et JMeter - Falguière 4
  • 5. Subjectif 0,5 s 1s 10 s Complexité supposée Ordre d'affichage Stabilité Performances et JMeter - Falguière 5
  • 6. Paul Foot Supporter l'effort Tenir la durée Un marathon ça se Martineric prépare ! Paul Foot Performances et JMeter - Falguière 6
  • 7. S(t)imulation Performances et JMeter - Falguière 7
  • 8. Le test de performance Quels vont faire les utilisateurs en Quels sont volumétries ? production ? Les dimensionnements ? Quels sont les risques à vérifier ? les critères à mesurer ? Performances et JMeter - Falguière 8
  • 9. La Représentativité des tests Quoi ? Combien? Qui ? Quoi ? Où ? Quand ? Combien ? Comment ? Pourquoi ? Performances et JMeter - Falguière 9
  • 10. Qui ? Quoi ? Consultations MAJ Fréquent employé ou Vital Charges Paie ou Recherche complexe Risqué Performances et JMeter - Falguière 10
  • 11. Combien ? Quand ? Ou ? Quelle heure ? Quel jour ? Pics Performances et JMeter - Falguière 11
  • 12. Pourquoi ? Les enjeux Les coûts Performances et JMeter - Falguière 12
  • 13. Les Critères de succès Temps de réponse et Disponibilité, Stabilité Robustesse Vieillissement Résistance à l'effet Twitter GALERIEopWEG Consommation de ressources Performances et JMeter - Falguière 13
  • 14. JMeter Performances et JMeter - Falguière 14
  • 15. Des outils http://jakarta.apache.org/jmeter/ Projet Apache Jakarta Script en XML et Script JVM Extensible Multiprotocole Enregistrement des scénarios Web Gestion du cache et des cookies Performances et JMeter - Falguière 15
  • 16. Démo Concepts de base Performances et JMeter - Falguière 16
  • 17. L'IHM Test Plan Eléments exécutés lorsque l'on lance le plan de test Thread Group Nombre d'utilisateurs et d'itérations Sampler Action Listeners Visualisation des résultats Workbench Eléments Temporaires Performances et JMeter - Falguière 17
  • 18. Scripts HTTP (1) Enregistrer HTTP Proxy Navigateur Script (2) Variabiliser (3) Rejouer Performances et JMeter - Falguière 18
  • 19. Démo Enregistrer un scénario Et variabiliser Performances et JMeter - Falguière 19
  • 20. Les concepts Paramètres Configuration communs, variables, jeux de données Bloc de contrôle Sampler Emission des requêtes Logic Controller Listeners Visualisation des résultats Performances et JMeter - Falguière 20
  • 21. Mesurer Mesurer Mesurer Performances et JMeter - Falguière 21
  • 22. Profil de charge Plateau Ramp Ramp Up Down Thread Group 1 Thread Group 2 Performances et JMeter - Falguière 22
  • 23. Avoir une stratégie de test Que veut on évaluer ? Quels sont les enjeux ? Quels scénarios? Combien d 'utilisateurs ? Combien de temps ? Quel profil de charge ? Environnement requis ? Jeux de données? Performances et JMeter - Falguière 23
  • 24. Durée du test Répéter → Aléas de mesure → Variabilité des données Isoler le rampup → initialisations Durer → Chargement des caches → Détecter les fuites Performances et JMeter - Falguière 24
  • 25. 1 action Des exigences 4h /10 s 1000 Spécifier Concevoir Implémenter Exécuter Des milliers de relevés 1 440 000 Analyser et Valider relevés Comprendre agréger Synthétiser Restituer Quelques chiffres Performances et JMeter - Falguière 25
  • 26. La moyenne n'est pas un bon indicateur 0,5 s 1s Moyenne 1,2s Performances et JMeter - Falguière 26
  • 27. La moyenne n'est pas un bon indicateur Inconscient Marquant 0,5 s 1s Rare Moyenne 10% 90% 1,2s sont < 3,5s Performances et JMeter - Falguière 27
  • 28. La statistique est votre ami > data <- rnorm(100,2)+2 Histogram of ts Cumulative histogram of ts 100 20 80 Frequency Frequency 15 60 10 40 20 5 0 0 2 3 4 5 6 2 3 4 5 6 Duration Duration Performances et JMeter - Falguière 28
  • 29. Les quantiles et les SLA > summary(data) > quantile(data,0.95) Min. 1st Qu. Median Mean 3rd Qu. Max. 95% 1.779 3.203 3.834 3.840 4.483 5.966 5.408672 Cumulative histogram of ts 100 Quantile 90% 80 Frequency 60 40 20 0 SLA 2 3 4 5 6 Duration Performances et JMeter - Falguière 29
  • 30. Démo Profil et résultat Performances et JMeter - Falguière 30
  • 31. Faire parler la distribution Quelques mauvais temps isolés Temps très variables Bimodal Performances et JMeter - Falguière 31
  • 32. Les biais de perception 6 5 OK Duration 4 KO 3 2 0 20 40 60 80 100 Time 6 5 4 K0 Duration 3 OK 2 1 0 0 20 40 60 80 100 Time Performances et JMeter - Falguière 32
  • 33. Tiens au fait le critère ... REQ-1234 La page d'accueil doit s'afficher en moins de 600 ms Est ce qu'on parle bien de la même chose ? Performances et JMeter - Falguière 33
  • 34. Douter Performances et JMeter - Falguière 34
  • 35. Garbage In → Garbage Out Le résultat du test dépend totalement des scénarios définis et de leur implémentation Biais Martineric Performances et JMeter - Falguière 35
  • 36. Des exigences Spécifier Concevoir Implémenter Exécuter Des milliers de relevés Analyser et Valider Comprendre Synthétiser Restituer Quelques chiffres Performances et JMeter - Falguière 36
  • 37. Groupe 1 Groupe 2 Trouvez des biais Trouvez des biais qui rendront le qui rendront le résultat meilleur résultat plus mauvais Performances et JMeter - Falguière 37
  • 38. Volumétries Volumes trop faibles Volumes trop importants Requêtes moins coûteuses Requête plus coûteuses Simplifier la navigation Oublier les temps d'attentes Moins de requêtes Trop de requêtes Monter trop vite en charge Avoir les bonnes Pas encore les ressources volumétries Itération très courtes Trop de sessions Performances et JMeter - Falguière 38
  • 39. Jeux de données et cache Mots clés exacts Mots clés génériques (*) 1 seul résultat Trop de résultats Toujours les mêmes mots clés Trop de mots clés différents Toujours trouvé dans le cache Lessive le cache Réutiliser les mêmes valeurs Avoir la bonne Contention structure de Tests trop court avec cache données Cache vide Performances et JMeter - Falguière 39
  • 40. Gestion des erreurs Ignorer les erreurs Ignorer les limites externes Faux positifs Faux négatifs Test très court Pas le temps de voir les fuites En bref, c'est pas facile ! Performances et JMeter - Falguière 40
  • 41. Démo Compléter le scénario Performances et JMeter - Falguière 41
  • 42. Les concepts Configuration Jeux de données Pre-Processor Préparation de données Timers Temps d'attente Logic Controller Sampler Action Post Processor Extraire des données du résultat Assertions Vérifier le résultat Listeners Visualisation Performances et JMeter - Falguière 42
  • 43. JMeter dans la vrai vie Désactiver les listeners coûteux → laisser seulement les agrégats Ou option –non-gui et paramétrage par variables Génère un fichier XML .jtl ou CSV Performances et JMeter - Falguière 43
  • 44. JMeter dans la vrai vie Gérer la mémoire de JMeter et multi-instance si problème de charge Vérifier la cible, les scripts, les données Warmup / T étalon / T en Charge ir ir Performances et JMeter - Falguière 44
  • 45. JMeter dans la vrai vie Valider le résultat ? Retester ? Confirmer les résultats Analyser et tester les hypothèses Isoler les facteurs Augmenter les niveaux de trace Performances et JMeter - Falguière 45
  • 46. Partager Performances et JMeter - Falguière 46
  • 47. Partager le processus Comprendre les résultats Dev Partager les solutions Client Etablir La confiance Ops dans le résultat Performances et JMeter - Falguière 47
  • 48. Agile jusqu'à la production devops Réconcilier Developpement et Opérations Google User Groups Continuous - Devopsfr Deploiement - Paris Devops - Lille Devops Performances et JMeter - Falguière 48
  • 49. Measure, Don't guess Performances et JMeter - Falguière 49
  • 50. Il faut faire des Si vous avez procédures stockées, un marteau Hibernate c'est pourri tout ressemble à un clou Changez d'OS, Windows ça plante tout le temps Il faut remplacer Struts par Spring Sic Performances et JMeter - Falguière 50
  • 51. Don't shoot in the dark ! J ne me précipiterai pas sur mon Eclipse e J ne me précipiterai pas sur mon Eclipse e J ne me précipiterai pas sur mon Eclipse e J ne me précipiterai pas sur mon Eclipse e J ne me précipiterai pas sur mon Eclipse e J ne me précipiterai pas sur mon Eclipse e J ne me précipiterai pas sur mon Eclipse e Performances et JMeter - Falguière 51
  • 52. La cible Vous êtes ici L'environnement de dev Performances et JMeter - Falguière 52
  • 53. Comportement sous stress Individu Groupe Foule Ressources Concurrence limitées Répétition Problèmes de Saturation cohabitation Performances et JMeter - Falguière 53
  • 54. Combien ? Où ? Round Trip Performances et JMeter - Falguière 54
  • 55. Latence Navigateur Serveur GET / Requête ACK Latence Premier octet Réponse Dernier octet Performances et JMeter - Falguière 55
  • 56. Combien ? Où ? Navigateur Temps d'affichage Performances et JMeter - Falguière 56
  • 57. Profilage In Browser FireBug Add -o ns Chrome Developer Tools YSlow A nalyse Google Page Speed AOL Page Test Charles, HTTP Fiddler P roxy Performances et JMeter - Falguière 57
  • 58. Démo Charles et YSlow Performances et JMeter - Falguière 58
  • 59. Combien ? Où ? Temps par tier HTTP Phases JSF Temps par couche Domaine JDBC Performances et JMeter - Falguière 59
  • 60. atio n Exemple Exploit HTTP d u log 18s JSF RESTORE_VIEW 0s JSF APPLY_REQUEST_VALUES 0s JSF PROCESS_VALIDATIONS 0s JSF UPDATE_MODEL_VALUES 0s JSF INVOKE_APPLICATION 17s JSF RENDER_RESPONSE 0s AOP myapp.persistence 16s Logger AOP sur myapplication.persistence.* myapp.persistence.contrat.Contrat.save() 8s P6Spy 500 requêtes durant la même période Performances et JMeter - Falguière 60
  • 61. Introspection J2EE D rivers JDBC Par logs virtuels - Logs Hibernate - P6SPy - Access Log - Log4JDBC … - listener HTTP - listener phases JSF Pro filers Jav a EE - AOP - InfraRed - Perf4J - PerformaSure Performances et JMeter - Falguière 61
  • 62. Améliorer Performances et JMeter - Falguière 62
  • 63. Pourquoi ? Où est passé le temps de réponse ? Quels sont les composants impliqués ? Quelles sont les informations que je veux obtenir ? David Reece Performances et JMeter - Falguière 63
  • 64. Comportement sous stress Individu Groupe Foule Ressources Concurrence limitées Répétition Problèmes de Saturation cohabitation Performances et JMeter - Falguière 64
  • 65. Lock/Attente en mn Time out en s ou mn Service distant 200 ms Optimisez Requête SQL 50 ms vôtre temps Réseau local 20 ms GC en ms Accès disque en ms Exécution de code en ns Performances et JMeter - Falguière 65
  • 66. Tailles de boîtes Foule Ressources limitées Fuite Saturation Attente Time-out Performances et JMeter - Falguière 66
  • 67. Les limites physiques Charge (queue length) ou %CPU Swap In ou Mémoire disponible Usage disque fmo n, Per sysinternals vmst at, iostat, Temps Sysstat (sar) Nombre de connexions Taux d'erreur Tr aceRoute, netstat, tcpdump, wireshark Performances et JMeter - Falguière 67
  • 68. Tailles de pools Workers Pool de threads du Fuites Web Pool de container connexions JDBC T ux Ac a tive / T tal o Performances et JMeter - Falguière 68
  • 69. Monitoring Apache : module server-status Java EE : JMX MBeans du serveur d'applications MBeans custom Les monitor Jmeter Tomcat Custom Performances et JMeter - Falguière 69
  • 70. Démo Tomcat et le Monitor Performances et JMeter - Falguière 70
  • 71. La mémoire virtuelle Via JMX GC Overhead ou Temps passé en GC / Uptime process Via le log -verbose:gc + GCViewer Via le système % CPU Swap In Performances et JMeter - Falguière 71
  • 72. Concurrence ad D ump Groupe Th re eap D ump H CA, AT, J er + M Health Ce nt Concurrence Verrous (Transactionnel, Attentes Synchronized) Problèmes de Comportement multithreading instable Performances et JMeter - Falguière 72
  • 73. Profilage Individu Temps étalon et répartition Nombre de requêtes Taille des pages Pro filers Nombre de lignes de réponse Logs Ressources consommées e a ns JMX Mb Performances et JMeter - Falguière 73
  • 74. Atteindre la lune Performances et JMeter - Falguière 74
  • 75. Le test n'est qu'une S'entrainer simulation de la vrai vie Détecter les défauts de montée en charge Améliorer Définir la surveillance empreinte Performances et JMeter - Falguière 75
  • 76.  Fonctionnalités  Maintenabilité  Robustesse Définir ses  Scalabilité priorités  Performance unitaire Performances et JMeter - Falguière 76
  • 77. Ne pas rester bloqué sur la notion de représentativité Test sur étalon Test des contentions Test de robustesse Partir tôt Test de scalabilité Test de vieillissement Test qualifiant Joachim S. Müller (retouchée) Performances et JMeter - Falguière 77
  • 78. Tu n'aurais pas oublié un truc ? Performances et JMeter - Falguière 78
  • 79. Merci pour votre attention Des questions ? @cfalguiere Performances et JMeter - Falguière 79