Diagnostic performances

135
Diagnostic performance Claude Falguière Geneva JUG le 12 Octobre 2011 1 jeudi 13 octobre 2011

description

Je constate souvent que les gens cherchent la cause des problèmes de performance sans stratégie et sans coopérer entre métiers.Sur la base de mon expérience, je vais présenter des moyens qui permettent de partager l’information et élaborer un diagnostic de problème deperformance : - comment procéder pour ne pas chercher au hasard, - quelles informations sont utiles, - les patterns de comportement qu’on retrouve souvent et qui nous mettent sur une piste, - les vérifications à faire via le monitoring ou les logs pour confirmer l’hypothèse

Transcript of Diagnostic performances

Page 1: Diagnostic performances

Diagnostic performance

Claude Falguière

Geneva JUG le 12 Octobre 2011

1

jeudi 13 octobre 2011

Page 2: Diagnostic performances

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

Page 3: Diagnostic performances

Claude Falguière@cfalguiere

3

Technique

jeudi 13 octobre 2011

Page 4: Diagnostic performances

4

jeudi 13 octobre 2011

Page 5: Diagnostic performances

5

Faux ami 1La dream Team

X est performantY est performant Z est performant

=> Mon système est performant

jeudi 13 octobre 2011

Page 6: Diagnostic performances

Sprint ou marathon ?

6

jeudi 13 octobre 2011

Page 7: Diagnostic performances

Vitesse ou charge ?

Modèle Simlocker

Bus RATP

7

Modèle Fiat 500

jeudi 13 octobre 2011

Page 8: Diagnostic performances

8

Faux ami 2

C’est du bon sens !

jeudi 13 octobre 2011

Page 9: Diagnostic performances

9

User expe!ence

jeudi 13 octobre 2011

Page 10: Diagnostic performances

Subjectif Complexité supposéeOrdre d'affichageStabilité

10

jeudi 13 octobre 2011

Page 11: Diagnostic performances

Contre-intuitif

Nombreux composantsInteractions complexes

Caches

Mécanismes correctifs

11

Logique mais souvent

jeudi 13 octobre 2011

Page 12: Diagnostic performances

12

Faux ami 3

Avec le cloud fini les problèmes

jeudi 13 octobre 2011

Page 13: Diagnostic performances

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

Page 14: Diagnostic performances

14

S(t)imuler

jeudi 13 octobre 2011

Page 15: Diagnostic performances

15

jeudi 13 octobre 2011

Page 16: Diagnostic performances

16

Quels vont faire les utilisateurs en production ?

jeudi 13 octobre 2011

Page 17: Diagnostic performances

17

Les volumétries ? Les dimensionnements ?

jeudi 13 octobre 2011

Page 18: Diagnostic performances

18

Les risques à vérifier ? Les critères à mesurer ?

jeudi 13 octobre 2011

Page 19: Diagnostic performances

19

Qui ? Quoi ?Où ? Quand ? Combien ? Comment ? Pourquoi ?

jeudi 13 octobre 2011

Page 20: Diagnostic performances

20

Qui ?

jeudi 13 octobre 2011

Page 21: Diagnostic performances

21

Recherche complexe

Consultations

Paie

Qui ? Quoi ?

jeudi 13 octobre 2011

Page 22: Diagnostic performances

22

Qui ? Quoi ?

jeudi 13 octobre 2011

Page 23: Diagnostic performances

23

Combien ? Quand ?

Quelle heure ?

Quel jour ?

Pics

jeudi 13 octobre 2011

Page 24: Diagnostic performances

24

Les enjeux Les coûts

Pourquoi ?

jeudi 13 octobre 2011

Page 25: Diagnostic performances

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

Page 26: Diagnostic performances

26

GALERIEopWEG

GALERIEopWEG

Pourquoi ?

Temps de réponse

etDisponibilité, StabilitéRobustesse VieillissementRésistance à l'effet TwitterConsommation de ressources

jeudi 13 octobre 2011

Page 27: Diagnostic performances

27

Garbage inGarbage out

jeudi 13 octobre 2011

Page 28: Diagnostic performances

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

Page 29: Diagnostic performances

29

Trouvez des biais qui rendront le résultat meilleur

Trouvez des biais qui rendront le résultat plus mauvais

jeudi 13 octobre 2011

Page 30: Diagnostic performances

30

Volumétries

jeudi 13 octobre 2011

Page 31: Diagnostic performances

31

Structure des données

jeudi 13 octobre 2011

Page 32: Diagnostic performances

32

Gestion des erreurs

Bref ... pas facile

jeudi 13 octobre 2011

Page 33: Diagnostic performances

33

Cumulus

jeudi 13 octobre 2011

Page 34: Diagnostic performances

OPS

DEV

34

jeudi 13 octobre 2011

Page 35: Diagnostic performances

35

jeudi 13 octobre 2011

Page 36: Diagnostic performances

Si vous avez un

marteau

tout ressemble à un

clou

36

jeudi 13 octobre 2011

Page 37: Diagnostic performances

Donʼt shoot in the dark

37

jeudi 13 octobre 2011

Page 38: Diagnostic performances

travailler ensemble  ?

38

jeudi 13 octobre 2011

Page 39: Diagnostic performances

39

jeudi 13 octobre 2011

Page 40: Diagnostic performances

40

jeudi 13 octobre 2011

Page 41: Diagnostic performances

Et chez vous ?

41

jeudi 13 octobre 2011

Page 42: Diagnostic performances

42

Partager

jeudi 13 octobre 2011

Page 43: Diagnostic performances

43

jeudi 13 octobre 2011

Page 44: Diagnostic performances

44

Explicitez vos hypothèses et votre démarche

jeudi 13 octobre 2011

Page 45: Diagnostic performances

45

jeudi 13 octobre 2011

Page 46: Diagnostic performances

46

jeudi 13 octobre 2011

Page 47: Diagnostic performances

47

jeudi 13 octobre 2011

Page 48: Diagnostic performances

48

La Scène de Crime

jeudi 13 octobre 2011

Page 49: Diagnostic performances

49

jeudi 13 octobre 2011

Page 50: Diagnostic performances

50

jeudi 13 octobre 2011

Page 51: Diagnostic performances

51

jeudi 13 octobre 2011

Page 52: Diagnostic performances

52

jeudi 13 octobre 2011

Page 53: Diagnostic performances

53

jeudi 13 octobre 2011

Page 54: Diagnostic performances

54

Investigations

jeudi 13 octobre 2011

Page 55: Diagnostic performances

55

Que fait ce système ?

jeudi 13 octobre 2011

Page 56: Diagnostic performances

56

jeudi 13 octobre 2011

Page 57: Diagnostic performances

57

Comment ça marche ?

jeudi 13 octobre 2011

Page 58: Diagnostic performances

58

jeudi 13 octobre 2011

Page 59: Diagnostic performances

59

jeudi 13 octobre 2011

Page 60: Diagnostic performances

60

jeudi 13 octobre 2011

Page 61: Diagnostic performances

61

jeudi 13 octobre 2011

Page 62: Diagnostic performances

62

jeudi 13 octobre 2011

Page 63: Diagnostic performances

Jusque là

tout va bien

63

jeudi 13 octobre 2011

Page 64: Diagnostic performances

64

jeudi 13 octobre 2011

Page 65: Diagnostic performances

65

jeudi 13 octobre 2011

Page 66: Diagnostic performances

Dresser le bilan

66

jeudi 13 octobre 2011

Page 67: Diagnostic performances

67

jeudi 13 octobre 2011

Page 68: Diagnostic performances

68

jeudi 13 octobre 2011

Page 69: Diagnostic performances

69

jeudi 13 octobre 2011

Page 70: Diagnostic performances

70

jeudi 13 octobre 2011

Page 71: Diagnostic performances

71

jeudi 13 octobre 2011

Page 72: Diagnostic performances

72

jeudi 13 octobre 2011

Page 73: Diagnostic performances

73

jeudi 13 octobre 2011

Page 74: Diagnostic performances

Gagnez du temps

74

jeudi 13 octobre 2011

Page 75: Diagnostic performances

Série Chronologique

Et sa distribution

75

jeudi 13 octobre 2011

Page 76: Diagnostic performances

Quelques mauvais temps isolés

Temps très variables

Bimodale !? ...

76

jeudi 13 octobre 2011

Page 77: Diagnostic performances

Douter

77

jeudi 13 octobre 2011

Page 78: Diagnostic performances

78

Latences

jeudi 13 octobre 2011

Page 79: Diagnostic performances

79

Patterns

jeudi 13 octobre 2011

Page 80: Diagnostic performances

80

jeudi 13 octobre 2011

Page 81: Diagnostic performances

La rançon du succès

81

jeudi 13 octobre 2011

Page 82: Diagnostic performances

82

jeudi 13 octobre 2011

Page 83: Diagnostic performances

- 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

Page 84: Diagnostic performances

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

Page 85: Diagnostic performances

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

Page 86: Diagnostic performances

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

Page 87: Diagnostic performances

87

jeudi 13 octobre 2011

Page 88: Diagnostic performances

88

jeudi 13 octobre 2011

Page 89: Diagnostic performances

- 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

Page 90: Diagnostic performances

90

Le régime restrictif

jeudi 13 octobre 2011

Page 91: Diagnostic performances

- 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

Page 92: Diagnostic performances

La limite logicielle est préférable à l’écroulement

92

dimensionnement

jeudi 13 octobre 2011

Page 93: Diagnostic performances

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

Page 94: Diagnostic performances

94

jeudi 13 octobre 2011

Page 95: Diagnostic performances

95

jeudi 13 octobre 2011

Page 96: Diagnostic performances

96

jeudi 13 octobre 2011

Page 97: Diagnostic performances

97

jeudi 13 octobre 2011

Page 98: Diagnostic performances

98

jeudi 13 octobre 2011

Page 99: Diagnostic performances

99

jeudi 13 octobre 2011

Page 100: Diagnostic performances

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

Page 101: Diagnostic performances

101

Cohérence

plutôt que

Rock StarS

jeudi 13 octobre 2011

Page 102: Diagnostic performances

102

jeudi 13 octobre 2011

Page 103: Diagnostic performances

L'empruntà durée

indéterminée

103

jeudi 13 octobre 2011

Page 104: Diagnostic performances

104

jeudi 13 octobre 2011

Page 105: Diagnostic performances

- 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

Page 106: Diagnostic performances

MémoireConnexion non rendue au pool Thread bloqué

106

jeudi 13 octobre 2011

Page 107: Diagnostic performances

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

Page 108: Diagnostic performances

La voieunique

108

jeudi 13 octobre 2011

Page 109: Diagnostic performances

109

jeudi 13 octobre 2011

Page 110: Diagnostic performances

110

jeudi 13 octobre 2011

Page 111: Diagnostic performances

- 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

Page 112: Diagnostic performances

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

Page 113: Diagnostic performances

La chaisemusicale

113

jeudi 13 octobre 2011

Page 114: Diagnostic performances

114

jeudi 13 octobre 2011

Page 115: Diagnostic performances

Utilisation par plusieurs threads de variables de classe non multi-thread safe(formatters)

115

jeudi 13 octobre 2011

Page 116: Diagnostic performances

- 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

Page 117: Diagnostic performances

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

Page 118: Diagnostic performances

118

jeudi 13 octobre 2011

Page 119: Diagnostic performances

119

jeudi 13 octobre 2011

Page 120: Diagnostic performances

- 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

Page 121: Diagnostic performances

Que dis cette bimodale ?

121

jeudi 13 octobre 2011

Page 122: Diagnostic performances

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

Page 123: Diagnostic performances

123

Patience et longueur de

temps ...

jeudi 13 octobre 2011

Page 124: Diagnostic performances

124

jeudi 13 octobre 2011

Page 125: Diagnostic performances

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

Page 126: Diagnostic performances

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

Page 127: Diagnostic performances

127

jeudi 13 octobre 2011

Page 128: Diagnostic performances

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

Page 129: Diagnostic performances

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

Page 130: Diagnostic performances

Conclusion .

130

jeudi 13 octobre 2011

Page 131: Diagnostic performances

131

Priorités

Fonctions Robustesse

StabilitéRapidité

jeudi 13 octobre 2011

Page 132: Diagnostic performances

132

jeudi 13 octobre 2011

Page 133: Diagnostic performances

133

jeudi 13 octobre 2011

Page 134: Diagnostic performances

134

jeudi 13 octobre 2011

Page 135: Diagnostic performances

135

jeudi 13 octobre 2011