présentation performances montpellier
DESCRIPTION
Présentation Performances Montpellier JUG Janvier 2013TRANSCRIPT
![Page 1: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/1.jpg)
MontpellierJUG 16 Janvier 2013
goo.gl/4mmJQ
Performances
Claude Falguière @cfalguiere
http://fr.slideshare.net/claude.falguiere/prsentation-performances-montpellier
dimanche 20 janvier 13
![Page 2: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/2.jpg)
CLAUDE FALGUIEREArchitecte technique
http://cfalguiere.wordpress.com
JUG Leader Duchess FranceLeader Devoxx4Kids FranceMembre du Paris JUG
@cfalguiere+Claude Falguiere
dimanche 20 janvier 13
![Page 3: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/3.jpg)
Bob Alice
user experience
dimanche 20 janvier 13
![Page 4: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/4.jpg)
dimanche 20 janvier 13
![Page 5: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/5.jpg)
impressioncohérencestabilité
dimanche 20 janvier 13
![Page 6: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/6.jpg)
vitesse
ou encombrement
ou capacité
Charles
dimanche 20 janvier 13
![Page 7: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/7.jpg)
et disponibilité
dimanche 20 janvier 13
![Page 8: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/8.jpg)
et efficacité
dimanche 20 janvier 13
![Page 9: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/9.jpg)
gains
Optimisations
coût
Amazon :+100 ms -1% sales
Google : +500 ms –20% pages seen
dimanche 20 janvier 13
![Page 10: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/10.jpg)
Dean
dimanche 20 janvier 13
![Page 11: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/11.jpg)
We use the most performing frameworks !
Let’s upgrade the CPU
Let’s go to the Cloud
1
2
3Dean
dimanche 20 janvier 13
![Page 12: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/12.jpg)
l’heure de vérité
MEP
dimanche 20 janvier 13
![Page 13: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/13.jpg)
dimanche 20 janvier 13
![Page 14: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/14.jpg)
Capacité
Concurrence - Locks
Lenteur d’un composant
dimanche 20 janvier 13
![Page 15: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/15.jpg)
S3Quad-core 1.4GHz1Go
Nexus 10Dual-core 1,7 GHz2 Go
ServersQuad-Core Xeon 3,2 GHz8 / 64 Go
iPad4Dual-core 1.3GHz1Go
iPhone5Dual-core 1.02GHz1Go
iPhone4800 MHz512 Mo
MacBookAir Dual-Core i5 1,7 GHz4 Go
MacBookProQuadCore i7 2,3 GHz4 / 8 Go
HTC desire1 GHz576 Mo
BureautiqueCore i3 3GHz2 / 4 Go
dimanche 20 janvier 13
![Page 16: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/16.jpg)
WIFI 802.11n2 600 Mbit/s théoriques
4G 1Gb à l’arrêt - 100Mb en mouvement
ADSL 8 Mbit/s4 Mbit/s à 4Km
Réseau local filaire 1 Gbit/s 500 Mbit/s
ADSL2+ 16Mbits/s (20Mbits/s ATM)5 Mbits à 10 Mbits
WIFI 802.11.b 11 Mbit/s 6 Mbit/s réels
WIFI 802.11.a / 802.11g 54 Mbit/s 25 Mbit/s réels
3G 1,9 Mbit/s 384 Kbit/s
3G+ 14,4 Mbit/s 7,2 Mbit/s (v6)
HSPA 42 Mbit/s 10 Mbit/s (v8)
LTE 326 Mbit/s 40 Mbit/s
2 Mbps 8 Mbps 16 MbpsMusique 5 Mo : 20 s 5 s 2.5 sVidéo 1.5 Go : 97 mn 24 mn 12 mn
dimanche 20 janvier 13
![Page 17: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/17.jpg)
Essentiellement du scale outD’autres problèmes liés à la mutualisation Coût de la montée en charge
dimanche 20 janvier 13
![Page 18: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/18.jpg)
Agréger des capacités à faible coûtMais la limite reste
dimanche 20 janvier 13
![Page 19: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/19.jpg)
ressources limitées + non restituées = Famine
MémoireConnexion non rendue au pool Lock en interblocage
Les fuites
dimanche 20 janvier 13
![Page 20: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/20.jpg)
Transactions (base de données) Synchronized (objets Java)
LockDeadlock ou livelock
Les locks
dimanche 20 janvier 13
![Page 21: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/21.jpg)
Le volume
La répétition
Les timeout
Le fractionnement
L’algorithme
Les lenteurs
dimanche 20 janvier 13
![Page 22: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/22.jpg)
iso-prod Test en charge
Test de vieillissement
Test à petite charge
Test à 1 utilisateur
Analyse de code
dimanche 20 janvier 13
![Page 23: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/23.jpg)
tests en chargetest de concurrencetest de vieillissement
analyse de codemesure unitaire
dimanche 20 janvier 13
![Page 24: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/24.jpg)
L’analyse statique de codeLes tests à 1 utilisateurs
dimanche 20 janvier 13
![Page 25: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/25.jpg)
L’analyse statique de code
Sonar avec PMD et Findbugs
dimanche 20 janvier 13
![Page 26: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/26.jpg)
Temps de réponse serveur
L’analyse d’une requête
dimanche 20 janvier 13
![Page 27: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/27.jpg)
YSlow, PageSpeed Insights, GDT les proxy HTTP Charles, Fiddler
L’analyse du temps d’affichage
dimanche 20 janvier 13
![Page 28: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/28.jpg)
HTTPPhases JSFDomainePersistance (JDBC)
Temps par couche {
L’analyse du temps serveur
dimanche 20 janvier 13
![Page 29: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/29.jpg)
L’analyse du temps serveur
Access logs
Perf4J, JMX, MBeans, BTrace, logsDrivers JDBC virtuels (P6Spy, Log4JDBC)
Temps des requêtesTemps de service des disques
dimanche 20 janvier 13
![Page 30: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/30.jpg)
L’analyse du temps serveur
dimanche 20 janvier 13
![Page 31: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/31.jpg)
L’analyse de la base de données
Rapports sur les requêtes les plus longuesExplainIndexEviter les tris (order by, unions) et les cascade
Cache hit/miss
Passer 3 semaines de vacances avec la doc HibernateDéjeuner avec les DBA
dimanche 20 janvier 13
![Page 32: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/32.jpg)
Le profilage du code Java
dimanche 20 janvier 13
![Page 33: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/33.jpg)
Le profilage du code Java
Identifier Les opérations coûteuses ou répétées dans un use case Les opérations inutiles Les volumes pour chaque objet
Visualvm ou autre profiler
Scénario réaliste Volumes réalistes
dimanche 20 janvier 13
![Page 34: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/34.jpg)
Les algorithmes naïfs sur des grands volumes
Les types de collections (List, Set) et l’implémentation Evaluer l’utilité des tris Eviter l’agrandissements de structure LinkedList, redimensionnement d’ArrayList
Points d’attention
dimanche 20 janvier 13
![Page 35: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/35.jpg)
Les algorithmes
dimanche 20 janvier 13
![Page 36: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/36.jpg)
Les caches
Le précalcul partiel (arbres de fenwick, raccourcissement d’arbre)
Les heuristiques
L’estimation de probabilité
Algorithmes et répétition
dimanche 20 janvier 13
![Page 37: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/37.jpg)
Latence réseau, MTU
Buffers I/O
Facteurs de blocage SGBD : fetch size File systems : page size
Fragmentation d’espace, compactage
Fragmentations
dimanche 20 janvier 13
![Page 38: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/38.jpg)
Tests simultanés à 2 utilisateurs
dimanche 20 janvier 13
![Page 39: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/39.jpg)
Très faible consommation de ressources
Temps très longs (time-outs)
Affecte particulièrement certains use cases et à faible charge
Beaucoup de context switching
Indices de locks
dimanche 20 janvier 13
![Page 40: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/40.jpg)
L’analyse des locks
thread dump
Au runtime JConsole, Visualvm Thread Dump + outil d'analyse (jvisualvm,TDA ...)
visualvm + plugin Threads
dimanche 20 janvier 13
![Page 41: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/41.jpg)
Locker si nécessaire
Identifier les durée de vie des objets et leur scope
Utiliser les collections non synchronisées (List, Map)
Réduire la durée des locks
Points d’attention et pistes
Alternatives
Avoir une version par thread (Thread Local)
Déplacer le problème (volatile)
Immutabilité et persistent data
dimanche 20 janvier 13
![Page 42: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/42.jpg)
Test de capacité en chargeTest de vieillissement
dimanche 20 janvier 13
![Page 43: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/43.jpg)
LoadGenerator
dimanche 20 janvier 13
![Page 44: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/44.jpg)
Projet Apache Jakarta
Scripts en XML (par IHM) + script lets (javascript, beanshell ... via JSR-223)
ExtensibleMultiprotocoleGestion des cookies et émulation du cache
http://jmeter.apache.org/
dimanche 20 janvier 13
![Page 45: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/45.jpg)
dimanche 20 janvier 13
![Page 46: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/46.jpg)
Vital
Frequent
Risqué
FrequentFrequent
FrequentQue font les utilisateurs
dimanche 20 janvier 13
![Page 47: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/47.jpg)
Enregistrer
Thread Group
Logic Controller
Non Test Element
HTTP Proxy
HTTP Request
Sampler
HTTP Request
Sampler
dimanche 20 janvier 13
![Page 48: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/48.jpg)
Thread Groups
dimanche 20 janvier 13
![Page 49: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/49.jpg)
L’ordre de précédence
Logic Controller
Sampler
Configuration
Pre-Processor
Timers
Post-Processor
Assertion
Listener
configuration
mise à jour de paramètre
attente
requête
extraction de valeur
vérification
visualisation et reporting
TransactionController
IfController
WhileController
dimanche 20 janvier 13
![Page 50: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/50.jpg)
Exemple
Logic Controller
Sampler
Configuration
Pre-Processor
Timer
Post-Processor
Assertion
Listener
Logic ControllerResponseAssertion
RegularExpression Extrator
User Variable
CSV Reader
View Result Tree
dimanche 20 janvier 13
![Page 51: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/51.jpg)
l l
Gestion des mécanismes du navigateur
dimanche 20 janvier 13
![Page 52: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/52.jpg)
Obtenir le résultat
dimanche 20 janvier 13
![Page 53: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/53.jpg)
Debugguer
Insérer des échantillons de debogage dans les controllers
(Debug Sampler)
Enregistrer chaque action dans son TransactionController
Nommer les TransactionController
Activer la console
En charge Suivre le Thread Id Ajouter des variables à logguer
dimanche 20 janvier 13
![Page 54: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/54.jpg)
Paramétrer
Données de datasource CSV
Extractor dans les PostProcessor
UserVariable
${nomVariable}
UserVariable passée au test
-J nomVar ou --addProp vars.properties
${__P(nomVar, valeurDefaut)}
dimanche 20 janvier 13
![Page 55: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/55.jpg)
Vérifier les réponses
Assertions
sur le contenu
sur le nombre d’octets reçus
sur les entêtes HTTP
JMeter reporte automatiquement le code HTTP
dimanche 20 janvier 13
![Page 56: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/56.jpg)
Régler l’allure
ThreadGroup
Nombre d’utilisateurs
Durée de la montée en charge
Délai de reflexion de l’utilisateur (ThinkTime)
Valider le nombre de samples réalisés
dimanche 20 janvier 13
![Page 57: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/57.jpg)
En charge
--no-guiattention à la mémoire (conf de base -Xmx 1024m)
dimanche 20 janvier 13
![Page 58: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/58.jpg)
Biais qui améliorent le résultat
Biais qui dégradent le résultat
dimanche 20 janvier 13
![Page 59: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/59.jpg)
volumesscenario, données, mots clés
cachesdurée du test et vélocité
ignorer les erreursignorer les cas particuliers
SimplifierRanger
dimanche 20 janvier 13
![Page 60: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/60.jpg)
qui fonctionne le mieux ?
A B
dimanche 20 janvier 13
![Page 61: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/61.jpg)
Time Serie
and distribution
dimanche 20 janvier 13
![Page 62: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/62.jpg)
Quelques mauvais temps
Temps instables
Bimodal !? ...
dimanche 20 janvier 13
![Page 63: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/63.jpg)
identifier le coupable
dimanche 20 janvier 13
![Page 64: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/64.jpg)
OPS
DEV
dimanche 20 janvier 13
![Page 65: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/65.jpg)
Ernie
Fred
Greg
identifier le coupable
dimanche 20 janvier 13
![Page 66: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/66.jpg)
Les goulets possibles
dimanche 20 janvier 13
![Page 67: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/67.jpg)
Limites physiques
Mémoire / Disque ressource non partageable → erreur quand plus de ressources
CPU ressource en time sharing → partage excessif, lenteur
Réseau ressource en time sharing → idem + retry et écroulement
dimanche 20 janvier 13
![Page 68: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/68.jpg)
CPU taux, longueur de la file d’attente, process runnable
Mémoire utilisation mémoire, swap-in
Réseaunombre de connexions établies nombre d’octets échangés entre les process
Disquelongueur de la file d’attente, octets lus/écrits, temps de service
Surveiller les ressources
dimanche 20 janvier 13
![Page 69: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/69.jpg)
Limites logicielles
ulimit, quotas, shaping réseau
Les licences
Configuration mémoire de la JVM
Tailles limites de pool et de caches
dimanche 20 janvier 13
![Page 70: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/70.jpg)
Apache module apache-status
JEE via JMX nombre d’éléments de pool actifs
nombre de connexions JDBC établies et activesnombre de messages dans les queues JMSMBeans HibernateMBeans des cachesVos MBeans
Base de donnéesNombre de requêtes, Locks, requêtes coûteuses
Surveiller les ressources
dimanche 20 janvier 13
![Page 71: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/71.jpg)
Outils utiles
Collecteur : Nagios / Zabbix
Grapheur : Cacti / Graphite
JMX : JConsole, JMXTrans
Unix/Linux : sar + ksar / mnon, vmstat, iostat, netstat
Windows : perfmon, netstat
JVM : jstat, kill -3 (thread dump), Visualvm
dimanche 20 janvier 13
![Page 72: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/72.jpg)
Les Application Performance Management JEE
JavaMelody (open source)
Introscope
PerformaSure
DynaTrace
NewRelic
JXInsight/OpenCore
AppDynamics
dimanche 20 janvier 13
![Page 73: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/73.jpg)
adapter le comportement aux capacités
Le dimensionnement
dimanche 20 janvier 13
![Page 74: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/74.jpg)
Les pools
dimanche 20 janvier 13
![Page 75: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/75.jpg)
Tout ce qui rentre doit ressortir … en moyenne
Le pool est dimensionné par rapport aux ressources
Les files d’attente régulent les variations de débit
Pool
File d’attente
Les pools
dimanche 20 janvier 13
![Page 76: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/76.jpg)
L’entonnoir
dimanche 20 janvier 13
![Page 77: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/77.jpg)
-Xmx Heap
Mémoire de la JVM
dimanche 20 janvier 13
![Page 78: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/78.jpg)
-Xmx
utilisé par le process
Core Stack
disponible sur la machine swap
Heap
Mémoire de la JVM
dimanche 20 janvier 13
![Page 79: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/79.jpg)
JVMTI & JMVPI via JMXLog -verbose:gc + outils type GCViewervisualvmjstat avec les options gcjmap et jhatjClarity Censum (payant)
GC overhead < 5% (temps overhead / uptime)Activité CPU élevée
L’analyse de la mémoire
dimanche 20 janvier 13
![Page 80: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/80.jpg)
Visualvm
(plugin visualgc)
dimanche 20 janvier 13
![Page 81: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/81.jpg)
GCViewer
Log -verbose:gc
dimanche 20 janvier 13
![Page 82: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/82.jpg)
Profilage mémoire
Objets présents en grande quantité et en croissance
Difficiles de distinguer les fuites des caches tips : les fuites ont un nombre de générations élevé
dimanche 20 janvier 13
![Page 83: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/83.jpg)
Tester, Tester, Tester
Mesurer, Mesurer, Mesurer
Comprendre
Il n’y a pas de potion magique
dimanche 20 janvier 13
![Page 84: Présentation Performances Montpellier](https://reader034.vdocuments.mx/reader034/viewer/2022051514/549fc644ac795977328b45d4/html5/thumbnails/84.jpg)
Kirk Pepperdine Blog Java Performance TuningDevoxx 2012 Performance Optimization Tuning
Aleksey Shipilev performance mindmap devoxxhttp://shipilev.net/pub/talks/devoxx-Nov2012-perfMethodology-mindmap.pdf
Quelques lectures
JMeterhttp://blog.milamberspace.net/
dimanche 20 janvier 13