Diagnostic performances
-
Upload
genevajug -
Category
Technology
-
view
1.132 -
download
1
description
Transcript of Diagnostic performances
Diagnostic performance
Claude Falguière
Geneva JUG le 12 Octobre 2011
1
jeudi 13 octobre 2011
Copyright notice
2
Vous êtes libre de :Reproduire, distribuer et communiquer cette création au publicModifier 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.
http://creativecommons.org/licenses/by/3.0/
jeudi 13 octobre 2011
Claude Falguière@cfalguiere
3
Technique
jeudi 13 octobre 2011
4
jeudi 13 octobre 2011
5
Faux ami 1La dream Team
X est performantY est performant Z est performant
=> Mon système est performant
jeudi 13 octobre 2011
Sprint ou marathon ?
6
jeudi 13 octobre 2011
Vitesse ou charge ?
Modèle Simlocker
Bus RATP
7
Modèle Fiat 500
jeudi 13 octobre 2011
8
Faux ami 2
C’est du bon sens !
jeudi 13 octobre 2011
9
User expe!ence
jeudi 13 octobre 2011
Subjectif Complexité supposéeOrdre d'affichageStabilité
10
jeudi 13 octobre 2011
Contre-intuitif
Nombreux composantsInteractions complexes
Caches
Mécanismes correctifs
11
Logique mais souvent
jeudi 13 octobre 2011
12
Faux ami 3
Avec le cloud fini les problèmes
jeudi 13 octobre 2011
Essentiellement du scale out
Dʼautres problèmes liés à la mutualisation (latence I/O)
Coût de la montée en charge
13
jeudi 13 octobre 2011
14
S(t)imuler
jeudi 13 octobre 2011
15
jeudi 13 octobre 2011
16
Quels vont faire les utilisateurs en production ?
jeudi 13 octobre 2011
17
Les volumétries ? Les dimensionnements ?
jeudi 13 octobre 2011
18
Les risques à vérifier ? Les critères à mesurer ?
jeudi 13 octobre 2011
19
Qui ? Quoi ?Où ? Quand ? Combien ? Comment ? Pourquoi ?
jeudi 13 octobre 2011
20
Qui ?
jeudi 13 octobre 2011
21
Recherche complexe
Consultations
Paie
Qui ? Quoi ?
jeudi 13 octobre 2011
22
Qui ? Quoi ?
jeudi 13 octobre 2011
23
Combien ? Quand ?
Quelle heure ?
Quel jour ?
Pics
jeudi 13 octobre 2011
24
Les enjeux Les coûts
Pourquoi ?
jeudi 13 octobre 2011
25
Que veut on évaluer ?Quels sont les enjeux ?
Environnement requis ?Jeux de données?
POURQUOI ?
Combien d 'utilisateurs ?Combien de temps ?Quel pro"l de charge ?
QUOI ? COMBIEN ?
COMMENT ?
STRATEGIE DE TEST
jeudi 13 octobre 2011
26
GALERIEopWEG
GALERIEopWEG
Pourquoi ?
Temps de réponse
etDisponibilité, StabilitéRobustesse VieillissementRésistance à l'effet TwitterConsommation de ressources
jeudi 13 octobre 2011
27
Garbage inGarbage out
jeudi 13 octobre 2011
28
Garbage In → Garbage Out
Martineric
Biais
Le résultat du test dépend totalement des scénarios définis et de leur
implémentation
jeudi 13 octobre 2011
29
Trouvez des biais qui rendront le résultat meilleur
Trouvez des biais qui rendront le résultat plus mauvais
jeudi 13 octobre 2011
30
Volumétries
jeudi 13 octobre 2011
31
Structure des données
jeudi 13 octobre 2011
32
Gestion des erreurs
Bref ... pas facile
jeudi 13 octobre 2011
33
Cumulus
jeudi 13 octobre 2011
OPS
DEV
34
jeudi 13 octobre 2011
35
jeudi 13 octobre 2011
Si vous avez un
marteau
tout ressemble à un
clou
36
jeudi 13 octobre 2011
Donʼt shoot in the dark
37
jeudi 13 octobre 2011
travailler ensemble ?
38
jeudi 13 octobre 2011
39
jeudi 13 octobre 2011
40
jeudi 13 octobre 2011
Et chez vous ?
41
jeudi 13 octobre 2011
42
Partager
jeudi 13 octobre 2011
43
jeudi 13 octobre 2011
44
Explicitez vos hypothèses et votre démarche
jeudi 13 octobre 2011
45
jeudi 13 octobre 2011
46
jeudi 13 octobre 2011
47
jeudi 13 octobre 2011
48
La Scène de Crime
jeudi 13 octobre 2011
49
jeudi 13 octobre 2011
50
jeudi 13 octobre 2011
51
jeudi 13 octobre 2011
52
jeudi 13 octobre 2011
53
jeudi 13 octobre 2011
54
Investigations
jeudi 13 octobre 2011
55
Que fait ce système ?
jeudi 13 octobre 2011
56
jeudi 13 octobre 2011
57
Comment ça marche ?
jeudi 13 octobre 2011
58
jeudi 13 octobre 2011
59
jeudi 13 octobre 2011
60
jeudi 13 octobre 2011
61
jeudi 13 octobre 2011
62
jeudi 13 octobre 2011
Jusque là
tout va bien
63
jeudi 13 octobre 2011
64
jeudi 13 octobre 2011
65
jeudi 13 octobre 2011
Dresser le bilan
66
jeudi 13 octobre 2011
67
jeudi 13 octobre 2011
68
jeudi 13 octobre 2011
69
jeudi 13 octobre 2011
70
jeudi 13 octobre 2011
71
jeudi 13 octobre 2011
72
jeudi 13 octobre 2011
73
jeudi 13 octobre 2011
Gagnez du temps
74
jeudi 13 octobre 2011
Série Chronologique
Et sa distribution
75
jeudi 13 octobre 2011
Quelques mauvais temps isolés
Temps très variables
Bimodale !? ...
76
jeudi 13 octobre 2011
Douter
77
jeudi 13 octobre 2011
78
Latences
jeudi 13 octobre 2011
79
Patterns
jeudi 13 octobre 2011
80
jeudi 13 octobre 2011
La rançon du succès
81
jeudi 13 octobre 2011
82
jeudi 13 octobre 2011
- Se produit sous charge- Affecte tous les use cases
Accroissement de l’usage sur une longue période
Trouver les limites atteintes- time outs - ressources saturées
83
Confirmation
jeudi 13 octobre 2011
Memory bound : ressource non partageable→ erreur quand plus de ressources CPU bound : ressource en time sharing→ partage excessif, lenteur
Network bound : ressource en time sharing→ idem + retry et écroulement
Les limites physiques
84
jeudi 13 octobre 2011
ulimit, hyperviseurs, shaping réseau, les licences ...
Les Quotas
85
Mutualisation de ressources, Réserver des ressources au système, Priorisation de service,Facturation
jeudi 13 octobre 2011
Les Limites configurables
Configuration mémoire de la JVM (-Xmx)Tailles limites de poolTailles limites de cachesNombre dʼinstances, de connexions ...
86
jeudi 13 octobre 2011
87
jeudi 13 octobre 2011
88
jeudi 13 octobre 2011
- Se produit sous charge- Affecte tous les use cases- Souvent écroulement après un pic de charge
Trouver la bonne configuration- utilisation optimale du CPU et pas plus- vmstat (runnable)
89
Résolution
jeudi 13 octobre 2011
90
Le régime restrictif
jeudi 13 octobre 2011
- Se produit sous charge- Affecte tous les use cases
Saturation de limites configurées mais pas des limites matérielles
91
Confirmation
Résolution Lever ces limites
jeudi 13 octobre 2011
La limite logicielle est préférable à l’écroulement
92
dimensionnement
jeudi 13 octobre 2011
93
Dimensionnement par tests de charge- respecter le modèle de charge de l’utilisateur
Influence de la vitesse des utilisateurs- attentes sur le serveur Web ou le container Web
Influence des jeux de données- attentes de la base de données
Comment dimensionner ?
jeudi 13 octobre 2011
94
jeudi 13 octobre 2011
95
jeudi 13 octobre 2011
96
jeudi 13 octobre 2011
97
jeudi 13 octobre 2011
98
jeudi 13 octobre 2011
99
jeudi 13 octobre 2011
Tout ce qui rentre doit ressortir … en moyenne
Les actifs sont définis par la taille du pool Les files d’attente régulent les variations de débit
100
dimensionnement
jeudi 13 octobre 2011
101
Cohérence
plutôt que
Rock StarS
jeudi 13 octobre 2011
102
jeudi 13 octobre 2011
L'empruntà durée
indéterminée
103
jeudi 13 octobre 2011
104
jeudi 13 octobre 2011
- Se produit avec le temps même à faible charge- Affecte tous les use cases- Les indicateurs se dégradent progressivement
Trouver la fuite ...
- Tester les use case isolément, la fuite est souvent liée à un scénario particulier- Certains outils d’introspection détectent les fuites de connexion sur les pools
105
Résolution
jeudi 13 octobre 2011
MémoireConnexion non rendue au pool Thread bloqué
106
jeudi 13 octobre 2011
Les pseudo fuites ... aka les caches
Evaluer l'utilité : thrashing, jamais relus
Weak reference, soft reference
Utiliser un vrai cache : durée de rétention, recyclage
107
jeudi 13 octobre 2011
La voieunique
108
jeudi 13 octobre 2011
109
jeudi 13 octobre 2011
110
jeudi 13 octobre 2011
- Très faible consommation de ressources- Temps très longs (time-outs)- Affecte particulièrement certains use cases et à faible charge
Trouver le lockProvoquer le lock- test à 2 utilisateurs synchronisés → 1 des 2 est deux fois plus long
111
Confirmation
jeudi 13 octobre 2011
Java→ Thread Dump + outil d'analyse
(MAT, JCA, HealthCenter, Samourai)
Evaluer les portées des synchronizedAttention aux variables communes
(données et compteurs applicatifs)
BD→ voir les outils de DBA
112
jeudi 13 octobre 2011
La chaisemusicale
113
jeudi 13 octobre 2011
114
jeudi 13 octobre 2011
Utilisation par plusieurs threads de variables de classe non multi-thread safe(formatters)
115
jeudi 13 octobre 2011
- Erreurs d'incohérence- Affecte plus certains use cases- A faible charge- Instabilité
Provoquer le problème - test synchronisés → 1 des 2 est en erreur ... si vous avez de la chance
116
Confirmation
jeudi 13 octobre 2011
Causes courantes :- Optimisations sauvage des synchronized pour
régler des problèmes de performance- Caches et compteurs applicatifs mal gérés- Formatters
Solutions possibles :→ Thread Local, synchronized, volatile
Très difficile à identifier
117
jeudi 13 octobre 2011
118
jeudi 13 octobre 2011
119
jeudi 13 octobre 2011
- localisé sur un use case- variations dans un use case
Préciser le scénario - donnée en cause- volumes / répétition- scénario alternatif
120
jeudi 13 octobre 2011
Que dis cette bimodale ?
121
jeudi 13 octobre 2011
Comportement différent selon les instances
Plusieurs cas sous le même use case mesuré
Lock
Cache
Que dis cette bimodale ?
122
jeudi 13 octobre 2011
123
Patience et longueur de
temps ...
jeudi 13 octobre 2011
124
jeudi 13 octobre 2011
Dresser le bilan → Comprendre où ça se passe à peu près
Mesurer ce qui permet - de choisir un pattern- de comprendre la cause
Eliminer des hypothèsesNe pas choisir une vérité trop rapidement
Boucler
Le processus
125
jeudi 13 octobre 2011
Lorsque vous avez éliminé l'impossible, ce qui reste, si
improbable soit-il, est nécessairement la vérité.
Arthur Conan Doyle(Le signe des quatre)
126
jeudi 13 octobre 2011
127
jeudi 13 octobre 2011
Les erreurs dans les logsNon contributifs(en permanence)
Uniquement sur la nouvelle plate-forme Non applicatif
Perte du service systématique après 2j ouvrés
Peu d'utilisateurs et de requêtes Exclus la charge
Tout marche après redémarrage de l'OS
Aucun signe de saturation avant le crash
L'OS est inaccessible
Perte du monitoring Réseau ?
Donc pas coupure réseau
Vieillissement ? mais pas de symptômes ...
Et qui peut bloquer
l’accès à l’OS128
jeudi 13 octobre 2011
Fuite de connexions LDAP
Uniquement sur la nouvelle plate-forme Applicatif
L'ancienne plate-forme avait été modifiée
Limite du nombre de connexions réseau autorisées sous Windows
Perte du monitoringL'OS est inaccessible
Plus d’accès réseau
129
jeudi 13 octobre 2011
Conclusion .
130
jeudi 13 octobre 2011
131
Priorités
Fonctions Robustesse
StabilitéRapidité
jeudi 13 octobre 2011
132
jeudi 13 octobre 2011
133
jeudi 13 octobre 2011
134
jeudi 13 octobre 2011
135
jeudi 13 octobre 2011