Analyse de performance, monitoring…

Transcription

Analyse de performance, monitoring…
Plan
Analyse de performance,
monitoring…
„
„
„
Principes de profilage
Projet TPTP dans Eclipse
Utilisation des profiling tools de TPTP
Philippe Collet
Master 1 Informatique
2009-2010
http://deptinfo.unice.fr/twiki/bin/view/Minfo/GL
P. Collet
1
P. Collet
Motivations
„
Mesure globale du temps
Performance ?
„
„
„
Espace & Temps
We should forget about small efficiencies, say about 97% of the
time: premature optimization is the root of all evil.
Donald E. Knuth
„
La plupart des programmes suivent la règle des 80/20
„
„
Ils exécutent 20 % du code pendant 80 % du temps
) Combien de temps passé et dans quelles parties du code
„
„
„
2
„
fournit le temps utilisateur, le temps système, et l'elapsed time
„
CPU time = Temps utilisateur + temps système
„
elapsed time : temps réel de l'exécution de la commande
„
user time : temps CPU utilisé par le programme utilisateur
„
sys time : temps utilisé par le système pour gérer l'exécution du job
Propriétés
„
Résolution de l'ordre de 10ms
„
Un "system_time" disproportionné peut indiquer un dysfonctionnement
„
CPU time < elapsed time
„
Quelles fonctions sont souvent utilisées
Quelles fonctions prennent le plus de temps CPU
Quelle partie est peut-être mal conçue…
P. Collet
Utilisation de la commande UNIX : time
„
„
3
Nombre important de floatig-point exceptions, de "page faults"…
Partage de la machine, grand nombre d'I/O, swap important…
Mise en oeuvre : time <programme> <arguments du programme>
P. Collet
4
1
Principes du profilage
„
Deux approches : échantillonnage ou comptage
„
Échantillonnage du compteur de programme
„
„
„
Principes du profilage (suite)
„
„
Le PC (program counter) est échantillonné, à intervalles réguliers,
pour savoir quelles fonctions sont appelées
„
Avec des recompilations particulières, on peut obtenir le graphe
d’appel et le rapport en fonctions appelantes/appelées
„
Échantillonnage de machine virtuelle
„
„
„
Comptage de blocs de base
„
„
Mais fortement dépendant du taux d’échantillonnage
„
Java 1.6 : java -Xprof
5
„
„
„
„
„
„
l'outillage de base
un socle extensible
„
„
„
TPTP Platform Project: socle utilisé par les divers outils de test et de
mesure des performances.
La plateforme fournit notamment les mécanismes permettant de collecter
des informations dans un environnement réparti.
P. Collet
Outil d'analyse de ces informations (localisation des allocations
mémoire, détermination des temps d'exécution)
propose les outils permettant de créer des tests : test JUnit, test
« manuel » (avec intervention de l'utilisateur), test d'applications
Web (capture et exécution d'une succession de requêtes HTTP)
TPTP Monitoring Tools Project
„
7
Outil de collecte des informations sur le fonctionnement
d'applications Java (applis autonomes, applis J2EE)
TPTP Test Tools Project
„
Test & Performance Tools Platform
Crée en 2002 sous le nom Hyadès puis TPTP organisé en 4 sousprojets dont
„
6
TPTP Tracing and Profiling Tools Project
„
TPTP signifie :
„
Un bloc de base est une séquence de code sans débranchement
Présent sur architecture Compaq TrueUNIX 64 et d’anciennes
architectures similaires
TPTP : organisation
La mise en place de tests et l'analyse des performances des
applications sont des phases essentielles dans le cycle de
développement.
Le projet TPTP a pour but de répondre à ces besoins d'une part en
proposant
„
Qui contient du code additionnel pour mesurer le temps de chaque
bloc de base
P. Collet
Projet TPTP dans Eclipse
„
Lit un programme exécutable, le partitionne en « blocs de base »
et écrit un programme équivalent
„
En Java : la machine note, à intervalles réguliers, quelle méthode
est active (remontée de la pile d’appel jusqu’à un certain niveau)
P. Collet
Produit le comptage du nombre de fois que les instructions
s’exécutent
Exemple : pixie
Très facile
„
Insertion du code de comptage dans des endroits clés du
programme
fournit des outils de collecte et de visualisation des performances
du système d'exploitation (Windows et Unix) et de supervision
pour divers serveurs d'applications J2EE (JBoss et JOnAS)
P. Collet
8
2
Tracing and Profiling Tools
„
Configuration
Analyse d’une application Java pour localiser les
morceaux de code qui impactent le plus les
performances.
„
„
Par analyse dynamique de l'application
L'application est exécutée dans un mode particulier, le
mode'Profiling', qui permet la collecte d'informations
„
„
„
„
„
les temps d'exécution
l'occupation mémoire
la gestion de threads
La couverture de code
Pendant l'exécution, ou une fois celle-ci terminée,
plusieurs vues permettent d'analyser les résultats
P. Collet
9
Visualisation des résultats
P. Collet
P. Collet
10
Flot d’exécution
11
P. Collet
12
3
Trace d’interactions UML2
P. Collet
Traces de thread UML 2
13
Analyse de thread
P. Collet
P. Collet
14
Analyse mémoire
15
P. Collet
16
4
Conclusion
„
TPTP
„
„
Un environnement graphique très puissant
Mais attention :
„
„
„
„
Beaucoup de données peuvent être produites
Elles seront difficiles à analyser synthétiquement,
même par les outils graphiques
Le filtrage, dès le début du profilage, est
primordial
Comme pour le débogage, il faut un peu savoir
ce que l’on cherche avant de le trouver…
P. Collet
17
5

Documents pareils