Mesurer la                 performance des                 applications avecBrooks Elliott                       JMeter   ...
Copyright notice●   Vous êtes libre de :                               http://creativecommons.org/licenses/by/3.0/    ●   ...
Claude Falguière                                                          @cfalguiere   ConsultanteCo-fondatrice          ...
Userexperience   Performances et JMeter - Falguière   4
Subjectif0,5 s   1s                                        10 s              Complexité supposée              Ordre daffic...
Paul Foot                                       Supporter leffort                                       Tenir la durée    ...
S(t)imulation     Performances et JMeter - Falguière   7
Le test de performance   Quels vont faire   les utilisateurs en                                      Quels sont volumétrie...
La Représentativité des tests                              Quoi ? Combien?                 Qui ? Quoi ?                 Où...
Qui ? Quoi ?                Consultations MAJ                                                     Fréquentemployé         ...
Combien ? Quand ? Ou ?Quelleheure ?Queljour ?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 à leffet Tw...
JMeter  Performances et JMeter - Falguière   14
Des outils                                  http://jakarta.apache.org/jmeter/  Projet Apache Jakarta  Script en XML et Scr...
Démo Concepts de basePerformances et JMeter - Falguière   16
LIHM                  Test Plan          Eléments exécutés lorsque                                     lon lance le plan d...
Scripts HTTP                      (1) Enregistrer                    HTTP Proxy     Navigateur           Script         (2...
Démo Enregistrer un scénario Et variabiliserPerformances et JMeter - Falguière   19
Les concepts                                                       Paramètres                   Configuration             ...
MesurerMesurerMesurer  Performances et JMeter - Falguière   21
Profil de charge                   Plateau Ramp                                                   Ramp  Up                ...
Avoir une stratégie de testQue veut on évaluer ?Quels sont les enjeux ?           Quels scénarios?   Combien d utilisateur...
Durée du testRépéter→ Aléas de mesure→ Variabilité des donnéesIsoler le rampup→ initialisationsDurer→ Chargement des cache...
1 actionDes exigences                                               4h    /10 s                                           ...
La moyenne nest pas un bon indicateur   0,5 s   1s           Moyenne            1,2s                Performances et JMeter...
La moyenne nest pas un bon indicateur Inconscient                                Marquant   0,5 s   1s                    ...
La statistique est votre ami            > data <- rnorm(100,2)+2                       Histogram of ts                    ...
Les quantiles et les SLA> summary(data)                                                                        > quantile(...
Démo Profil et résultatPerformances et JMeter - Falguière   30
Faire parler la distribution                                        Quelques mauvais                                      ...
Les biais de perception              6              5                                                                     ...
Tiens au fait le critère ...REQ-1234 La pagedaccueil doit safficher enmoins de 600 ms                  Est ce quon        ...
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émentatio...
Des exigences                               Spécifier                              Concevoir                             I...
Groupe 1                                 Groupe 2Trouvez des biais                    Trouvez des biaisqui rendront le    ...
Volumétries Volumes trop faibles                                Volumes trop importants    Requêtes moins coûteuses       ...
Jeux de données et cache Mots clés exacts                                             Mots clés génériques (*)   1 seul ré...
Gestion des erreurs Ignorer les erreurs                                         Ignorer les limites externes    Faux posit...
Démo Compléter le scénarioPerformances et JMeter - Falguière   41
Les concepts                   Configuration                 Jeux de données                   Pre-Processor              ...
JMeter dans la vrai vie   Désactiver les listeners coûteux   → laisser seulement les agrégats   Ou option –non-gui et para...
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 sc...
JMeter dans la vrai vie   Valider le résultat ?   Retester ?     Confirmer les résultats     Analyser et tester les hypoth...
Partager   Performances et JMeter - Falguière   46
Partager le processus    Comprendre les résultatsDev Partager les solutions   Client           Etablir La confiance   Ops ...
Agile jusquà la production  devops  Réconcilier  Developpement et  Opérations                                       Google...
Measure,Dont guess    Performances et JMeter - Falguière   49
Il faut faire des                              Si vous avezprocédures stockées,                              un marteauHib...
Dont shoot in the dark !    J ne me précipiterai pas sur mon Eclipse     e    J ne me précipiterai pas sur mon Eclipse    ...
La cible                                                              Vous êtes iciLenvironnement de dev                  ...
Comportement sous stress Individu       Groupe                                 Foule                                      ...
Combien ? Où ?         Round Trip                 Performances et JMeter - Falguière   54
Latence  Navigateur                                                     Serveur          GET /                  Requête   ...
Combien ? Où ?   Navigateur   Tempsdaffichage                  Performances et JMeter - Falguière   56
Profilage In BrowserFireBug Add -o nsChrome Developer Tools YSlow A nalyse Google Page Speed AOL Page Test    Charles, HTT...
Démo Charles et YSlowPerformances et JMeter - Falguière   58
Combien ? Où ?                                                           Temps par tier             HTTP              Phas...
atio nExemple         Exploit  HTTP   d u log                                    18s  JSF RESTORE_VIEW                    ...
Introspection J2EE                            D rivers JDBCPar logs                    virtuels - Logs Hibernate          ...
Améliorer   Performances et JMeter - Falguière   62
Pourquoi ?Où est passé letemps de réponse ?Quels sont lescomposantsimpliqués ?Quelles sont lesinformations queje veux obte...
Comportement sous stress Individu       Groupe                                 Foule                                      ...
Lock/Attente      en mn              Time out     en s ou mn              Service distant                       200 msOpti...
Tailles de boîtes   Foule   Ressources    limitées                              Fuite      Saturation                    A...
Les limites physiques Charge (queue length) ou %CPU Swap In ou Mémoire disponible Usage disque       fmo n,               ...
Tailles de pools       Workers                                  Pool de                                threads du         ...
MonitoringApache : module server-statusJava EE : JMX MBeans du serveur dapplications MBeans customLes monitor Jmeter Tomca...
Démo Tomcat et le MonitorPerformances et JMeter - Falguière   70
La mémoire virtuelle        Via JMX        GC Overhead ou        Temps passé en GC / Uptime process                       ...
Concurrence                    ad D ump Groupe       Th re               eap D   ump              H                       ...
Profilage  Individu   Temps étalon et répartition           Nombre de requêtes           Taille des pagesPro filers Nombre...
Atteindre la lune   Performances et JMeter - Falguière   74
Le test nest quune  Sentrainer       simulation de la vrai vie                          Détecter les défauts de           ...
 Fonctionnalités           Maintenabilité               RobustesseDéfinir ses      Scalabilitépriorités         Perfo...
Ne pas rester bloqué sur la notion de       représentativitéTest sur étalonTest des contentionsTest de robustesse         ...
Tu nauraispas oubliéun truc ?    Performances et JMeter - Falguière   78
Merci pour votre   attentionDes questions ?                                          @cfalguiere     Performances et JMete...
Prochain SlideShare
Chargement dans…5
×

Mesurer les performances avec JMeter

7 503 vues

Publié le

Présentation sur JMeter et les tests de performance d'applications Java EE pour le Lyon JUG le 21 décembre

Publié dans : Technologie
2 commentaires
5 j’aime
Statistiques
Remarques
Aucun téléchargement
Vues
Nombre de vues
7 503
Sur SlideShare
0
Issues des intégrations
0
Intégrations
85
Actions
Partages
0
Téléchargements
262
Commentaires
2
J’aime
5
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Mesurer les performances avec JMeter

  1. 1. Mesurer la performance des applications avecBrooks Elliott JMeter Claude Falguière Au Lyon JUG le 21 Décembre 2010
  2. 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 lauteur original de la manière indiquée par lauteur de loeuvre ou le titulaire des droits qui vous confère cette autorisation (mais pas dune manière qui suggérerait quils vous soutiennent ou approuvent votre utilisation de loeuvre). ● Rien dans ce contrat ne diminue ou ne restreint le droit moral de lauteur ou des auteurs. Performances et JMeter - Falguière 2
  3. 3. Claude Falguière @cfalguiere ConsultanteCo-fondatrice Membre de léquipe Performances et JMeter - Falguière 3
  4. 4. Userexperience Performances et JMeter - Falguière 4
  5. 5. Subjectif0,5 s 1s 10 s Complexité supposée Ordre daffichage Stabilité Performances et JMeter - Falguière 5
  6. 6. Paul Foot Supporter leffort Tenir la durée Un marathon ça seMartineric prépare ! Paul Foot Performances et JMeter - Falguière 6
  7. 7. S(t)imulation Performances et JMeter - Falguière 7
  8. 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. 9. La Représentativité des tests Quoi ? Combien? Qui ? Quoi ? Où ? Quand ? Combien ? Comment ? Pourquoi ? Performances et JMeter - Falguière 9
  10. 10. Qui ? Quoi ? Consultations MAJ Fréquentemployé ou VitalCharges Paie ou Recherche complexe Risqué Performances et JMeter - Falguière 10
  11. 11. Combien ? Quand ? Ou ?Quelleheure ?Queljour ?Pics Performances et JMeter - Falguière 11
  12. 12. Pourquoi ? Les enjeux Les coûts Performances et JMeter - Falguière 12
  13. 13. Les Critères de succès Temps de réponse et Disponibilité, Stabilité Robustesse Vieillissement Résistance à leffet Twitter GALERIEopWEG Consommation de ressources Performances et JMeter - Falguière 13
  14. 14. JMeter Performances et JMeter - Falguière 14
  15. 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. 16. Démo Concepts de basePerformances et JMeter - Falguière 16
  17. 17. LIHM Test Plan Eléments exécutés lorsque lon lance le plan de test Thread Group Nombre dutilisateurs et ditérations Sampler Action Listeners Visualisation des résultats WorkbenchEléments Temporaires Performances et JMeter - Falguière 17
  18. 18. Scripts HTTP (1) Enregistrer HTTP Proxy Navigateur Script (2) Variabiliser (3) Rejouer Performances et JMeter - Falguière 18
  19. 19. Démo Enregistrer un scénario Et variabiliserPerformances et JMeter - Falguière 19
  20. 20. Les concepts Paramètres Configuration communs, variables, jeux de données Bloc de contrôle Sampler Emission des requêtesLogic Controller Listeners Visualisation des résultats Performances et JMeter - Falguière 20
  21. 21. MesurerMesurerMesurer Performances et JMeter - Falguière 21
  22. 22. Profil de charge Plateau Ramp Ramp Up Down Thread Group 1 Thread Group 2 Performances et JMeter - Falguière 22
  23. 23. Avoir une stratégie de testQue 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. 24. Durée du testRépéter→ Aléas de mesure→ Variabilité des donnéesIsoler le rampup→ initialisationsDurer→ Chargement des caches→ Détecter les fuites Performances et JMeter - Falguière 24
  25. 25. 1 actionDes exigences 4h /10 s 1000 Spécifier Concevoir Implémenter ExécuterDes milliers de relevés 1 440 000 Analyser et Valider relevés Comprendre agréger Synthétiser RestituerQuelques chiffres Performances et JMeter - Falguière 25
  26. 26. La moyenne nest pas un bon indicateur 0,5 s 1s Moyenne 1,2s Performances et JMeter - Falguière 26
  27. 27. La moyenne nest 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. 28. La statistique est votre ami > data <- rnorm(100,2)+2 Histogram of ts Cumulative histogram of ts 100 20 80Frequency 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. 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. 30. Démo Profil et résultatPerformances et JMeter - Falguière 30
  31. 31. Faire parler la distribution Quelques mauvais temps isolés Temps très variables Bimodal Performances et JMeter - Falguière 31
  32. 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. 33. Tiens au fait le critère ...REQ-1234 La pagedaccueil doit safficher enmoins de 600 ms Est ce quon parle bien de la même chose ? Performances et JMeter - Falguière 33
  34. 34. Douter Performances et JMeter - Falguière 34
  35. 35. Garbage In → Garbage Out Le résultat du test dépend totalement des scénarios définis et de leur implémentation BiaisMartineric Performances et JMeter - Falguière 35
  36. 36. Des exigences Spécifier Concevoir Implémenter ExécuterDes milliers de relevés Analyser et Valider Comprendre Synthétiser RestituerQuelques chiffres Performances et JMeter - Falguière 36
  37. 37. Groupe 1 Groupe 2Trouvez des biais Trouvez des biaisqui rendront le qui rendront lerésultat meilleur résultat plus mauvais Performances et JMeter - Falguière 37
  38. 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 dattentes 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. 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. 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, cest pas facile ! Performances et JMeter - Falguière 40
  41. 41. Démo Compléter le scénarioPerformances et JMeter - Falguière 41
  42. 42. Les concepts Configuration Jeux de données Pre-Processor Préparation de données Timers Temps dattenteLogic 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. 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. 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. 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. 46. Partager Performances et JMeter - Falguière 46
  47. 47. Partager le processus Comprendre les résultatsDev Partager les solutions Client Etablir La confiance Ops dans le résultat Performances et JMeter - Falguière 47
  48. 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. 49. Measure,Dont guess Performances et JMeter - Falguière 49
  50. 50. Il faut faire des Si vous avezprocédures stockées, un marteauHibernate cest pourri tout ressemble à un clou Changez dOS, Windows ça plante tout le temps Il faut remplacer Struts par Spring Sic Performances et JMeter - Falguière 50
  51. 51. Dont 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. 52. La cible Vous êtes iciLenvironnement de dev Performances et JMeter - Falguière 52
  53. 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. 54. Combien ? Où ? Round Trip Performances et JMeter - Falguière 54
  55. 55. Latence Navigateur Serveur GET / Requête ACK Latence Premier octet Réponse Dernier octet Performances et JMeter - Falguière 55
  56. 56. Combien ? Où ? Navigateur Tempsdaffichage Performances et JMeter - Falguière 56
  57. 57. Profilage In BrowserFireBug Add -o nsChrome Developer Tools YSlow A nalyse Google Page Speed AOL Page Test Charles, HTTP Fiddler P roxy Performances et JMeter - Falguière 57
  58. 58. Démo Charles et YSlowPerformances et JMeter - Falguière 58
  59. 59. Combien ? Où ? Temps par tier HTTP Phases JSF Temps par couche Domaine JDBC Performances et JMeter - Falguière 59
  60. 60. atio nExemple 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. 61. Introspection J2EE D rivers JDBCPar 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. 62. Améliorer Performances et JMeter - Falguière 62
  63. 63. Pourquoi ?Où est passé letemps de réponse ?Quels sont lescomposantsimpliqués ?Quelles sont lesinformations queje veux obtenir ? David Reece Performances et JMeter - Falguière 63
  64. 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. 65. Lock/Attente en mn Time out en s ou mn Service distant 200 msOptimisez Requête SQL 50 msvô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. 66. Tailles de boîtes Foule Ressources limitées Fuite Saturation Attente Time-out Performances et JMeter - Falguière 66
  67. 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 derreur Tr aceRoute, netstat, tcpdump, wireshark Performances et JMeter - Falguière 67
  68. 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. 69. MonitoringApache : module server-statusJava EE : JMX MBeans du serveur dapplications MBeans customLes monitor Jmeter Tomcat Custom Performances et JMeter - Falguière 69
  70. 70. Démo Tomcat et le MonitorPerformances et JMeter - Falguière 70
  71. 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. 72. Concurrence ad D ump Groupe Th re eap D ump H CA, AT, J er + M Health Ce ntConcurrence Verrous (Transactionnel, Attentes Synchronized) Problèmes de Comportement multithreading instable Performances et JMeter - Falguière 72
  73. 73. Profilage Individu Temps étalon et répartition Nombre de requêtes Taille des pagesPro filers Nombre de lignes de réponse Logs Ressources consommées e a ns JMXMb Performances et JMeter - Falguière 73
  74. 74. Atteindre la lune Performances et JMeter - Falguière 74
  75. 75. Le test nest quune Sentrainer simulation de la vrai vie Détecter les défauts de montée en charge Améliorer Définir la surveillanceempreinte Performances et JMeter - Falguière 75
  76. 76.  Fonctionnalités  Maintenabilité  RobustesseDéfinir ses  Scalabilitépriorités  Performance unitaire Performances et JMeter - Falguière 76
  77. 77. Ne pas rester bloqué sur la notion de représentativitéTest sur étalonTest des contentionsTest de robustesse Partir tôtTest de scalabilitéTest de vieillissementTest qualifiant Joachim S. Müller (retouchée) Performances et JMeter - Falguière 77
  78. 78. Tu nauraispas oubliéun truc ? Performances et JMeter - Falguière 78
  79. 79. Merci pour votre attentionDes questions ? @cfalguiere Performances et JMeter - Falguière 79

×