Mesurer les performances avec JMeter
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Mesurer les performances avec JMeter

on

  • 5,992 views

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

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

Statistics

Views

Total Views
5,992
Views on SlideShare
5,902
Embed Views
90

Actions

Likes
2
Downloads
189
Comments
2

3 Embeds 90

http://jujo00obo2o234ungd3t8qjfcjrs3o6k-a-sites-opensocial.googleusercontent.com 87
https://jujo00obo2o234ungd3t8qjfcjrs3o6k-a-sites-opensocial.googleusercontent.com 2
http://www.slashdocs.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Mesurer les performances avec JMeter Presentation Transcript

  • 1. Mesurer la performance des applications avecBrooks 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 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. Claude Falguière @cfalguiere ConsultanteCo-fondatrice Membre de léquipe Performances et JMeter - Falguière 3
  • 4. Userexperience Performances et JMeter - Falguière 4
  • 5. Subjectif0,5 s 1s 10 s Complexité supposée Ordre daffichage Stabilité Performances et JMeter - Falguière 5
  • 6. Paul Foot Supporter leffort Tenir la durée Un marathon ça seMartineric 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équentemployé ou VitalCharges Paie ou Recherche complexe Risqué Performances et JMeter - Falguière 10
  • 11. Combien ? Quand ? Ou ?Quelleheure ?Queljour ?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 à leffet 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 basePerformances et JMeter - Falguière 16
  • 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. 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 variabiliserPerformances 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êtesLogic Controller Listeners Visualisation des résultats Performances et JMeter - Falguière 20
  • 21. MesurerMesurerMesurer 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 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. 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. 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. La moyenne nest pas un bon indicateur 0,5 s 1s Moyenne 1,2s Performances et JMeter - Falguière 26
  • 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. 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. 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ésultatPerformances 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 pagedaccueil doit safficher enmoins de 600 ms Est ce quon 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 BiaisMartineric Performances et JMeter - Falguière 35
  • 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. 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. 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. 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, cest pas facile ! Performances et JMeter - Falguière 40
  • 41. Démo Compléter le scénarioPerformances et JMeter - Falguière 41
  • 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. 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ésultatsDev 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,Dont guess Performances et JMeter - Falguière 49
  • 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. 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. La cible Vous êtes iciLenvironnement 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 Tempsdaffichage Performances et JMeter - Falguière 56
  • 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. Démo Charles et YSlowPerformances 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 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. 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. Améliorer Performances et JMeter - Falguière 62
  • 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. 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 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. 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 derreur 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. MonitoringApache : module server-statusJava EE : JMX MBeans du serveur dapplications MBeans customLes monitor Jmeter Tomcat Custom Performances et JMeter - Falguière 69
  • 70. Démo Tomcat et le MonitorPerformances 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 ntConcurrence 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 pagesPro filers Nombre de lignes de réponse Logs Ressources consommées e a ns JMXMb Performances et JMeter - Falguière 73
  • 74. Atteindre la lune Performances et JMeter - Falguière 74
  • 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.  Fonctionnalités  Maintenabilité  RobustesseDé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 é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. Tu nauraispas oubliéun truc ? Performances et JMeter - Falguière 78
  • 79. Merci pour votre attentionDes questions ? @cfalguiere Performances et JMeter - Falguière 79