• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Diagnostic performances
 

Diagnostic performances

on

  • 886 views

Je constate souvent que les gens cherchent la cause des problèmes de performance sans stratégie et sans coopérer entre métiers....

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

Statistics

Views

Total Views
886
Views on SlideShare
815
Embed Views
71

Actions

Likes
0
Downloads
12
Comments
0

2 Embeds 71

http://genevajug.ch 70
http://localhost:4000 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

    Diagnostic performances Diagnostic performances Presentation Transcript

    • Diagnostic performance Claude Falguière Geneva JUG le 12 Octobre 2011 1jeudi 13 octobre 2011
    • Copyright notice http://creativecommons.org/licenses/by/3.0/ Vous êtes libre de : 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. 2jeudi 13 octobre 2011
    • Claude Falguière @cfalguiere Technique 3jeudi 13 octobre 2011
    • 4jeudi 13 octobre 2011
    • Faux ami 1 La dream Team X est performant Y est performant Z est performant => Mon système est performant 5jeudi 13 octobre 2011
    • Sprint ou marathon ? 6jeudi 13 octobre 2011
    • Bus RATP Vitesse ou charge ? Modèle Fiat 500 Modèle Simlocker 7jeudi 13 octobre 2011
    • Faux ami 2 C’est du bon sens ! 8jeudi 13 octobre 2011
    • User expe!ence 9jeudi 13 octobre 2011
    • Subjectif Complexité supposée Ordre daffichage Stabilité 10jeudi 13 octobre 2011
    • Logique mais souvent Nombreux composants Interactions complexes Caches Contre-intuitif Mécanismes correctifs 11jeudi 13 octobre 2011
    • Faux ami 3 Avec le cloud fini les problèmes 12jeudi 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 13jeudi 13 octobre 2011
    • S(t)imuler 14jeudi 13 octobre 2011
    • 15jeudi 13 octobre 2011
    • Quels vont faire les utilisateurs en production ? 16jeudi 13 octobre 2011
    • Les volumétries ? Les dimensionnements ? 17jeudi 13 octobre 2011
    • Les risques à vérifier ? Les critères à mesurer ? 18jeudi 13 octobre 2011
    • Qui ? Quoi ? Où ? Quand ? Combien ? Comment ? Pourquoi ? 19jeudi 13 octobre 2011
    • Qui ? 20jeudi 13 octobre 2011
    • Qui ? Quoi ? Consultations Paie Recherche complexe 21jeudi 13 octobre 2011
    • Qui ? Quoi ? 22jeudi 13 octobre 2011
    • Combien ? Quand ? Quelle heure ? Quel jour ? Pics 23jeudi 13 octobre 2011
    • Pourquoi ? Les enjeux Les coûts 24jeudi 13 octobre 2011
    • STRATEGIE DE TEST POURQUOI ? Que veut on évaluer ? Quels sont les enjeux ? QUOI ? COMBIEN ? Combien d utilisateurs ? Combien de temps ? Quel pro l de charge ? COMMENT ? Environnement requis ? Jeux de données? 25jeudi 13 octobre 2011
    • Pourquoi ? Temps de réponse et Disponibilité, Stabilité GALERIEopWEG Robustesse Vieillissement Résistance à leffet Twitter Consommation de ressources 26jeudi 13 octobre 2011 G
    • Garbage in Garbage out 27jeudi 13 octobre 2011
    • Garbage In → Garbage Out Biais Martineric Le résultat du test dépend totalement des scénarios définis et de leur implémentation 28jeudi 13 octobre 2011
    • Trouvez des biais Trouvez des biais qui qui rendront le rendront le résultat résultat meilleur plus mauvais 29jeudi 13 octobre 2011
    • Volumétries 30jeudi 13 octobre 2011
    • Structure des données 31jeudi 13 octobre 2011
    • Gestion des erreurs Bref ... pas facile 32jeudi 13 octobre 2011
    • Cumulus 33jeudi 13 octobre 2011
    • DEV OPS 34jeudi 13 octobre 2011
    • 35jeudi 13 octobre 2011
    • Si vous avez un marteau tout ressemble à un clou 36jeudi 13 octobre 2011
    • Donʼt shoot in the dark 37jeudi 13 octobre 2011
    • travailler ensemble  ? 38jeudi 13 octobre 2011
    • 39jeudi 13 octobre 2011
    • 40jeudi 13 octobre 2011
    • Et chez vous ? 41jeudi 13 octobre 2011
    • Partager 42jeudi 13 octobre 2011
    • 43jeudi 13 octobre 2011
    • Explicitez vos hypothèses et votre démarche 44jeudi 13 octobre 2011
    • 45jeudi 13 octobre 2011
    • 46jeudi 13 octobre 2011
    • 47jeudi 13 octobre 2011
    • LaScène de Crime 48jeudi 13 octobre 2011
    • 49jeudi 13 octobre 2011
    • 50jeudi 13 octobre 2011
    • 51jeudi 13 octobre 2011
    • 52jeudi 13 octobre 2011
    • 53jeudi 13 octobre 2011
    • Investigations 54jeudi 13 octobre 2011
    • Que fait ce système ? 55jeudi 13 octobre 2011
    • 56jeudi 13 octobre 2011
    • Comment ça marche ? 57jeudi 13 octobre 2011
    • 58jeudi 13 octobre 2011
    • 59jeudi 13 octobre 2011
    • 60jeudi 13 octobre 2011
    • 61jeudi 13 octobre 2011
    • 62jeudi 13 octobre 2011
    • Jusque là tout va bien 63jeudi 13 octobre 2011
    • 64jeudi 13 octobre 2011
    • 65jeudi 13 octobre 2011
    • Dresser le bilan 66jeudi 13 octobre 2011
    • 67jeudi 13 octobre 2011
    • 68jeudi 13 octobre 2011
    • 69jeudi 13 octobre 2011
    • 70jeudi 13 octobre 2011
    • 71jeudi 13 octobre 2011
    • 72jeudi 13 octobre 2011
    • 73jeudi 13 octobre 2011
    • Gagnez du temps 74jeudi 13 octobre 2011
    • Série Chronologique Et sa distribution 75jeudi 13 octobre 2011
    • Quelques mauvais temps isolés Temps très variables Bimodale !? ... 76jeudi 13 octobre 2011
    • Douter 77jeudi 13 octobre 2011
    • Latences 78jeudi 13 octobre 2011
    • Patterns 79jeudi 13 octobre 2011
    • 80jeudi 13 octobre 2011
    • La rançon du succès 81jeudi 13 octobre 2011
    • 82jeudi 13 octobre 2011
    • - Se produit sous charge - Affecte tous les use cases Confirmation Accroissement de l’usage sur une longue période Trouver les limites atteintes - time outs - ressources saturées 83jeudi 13 octobre 2011
    • Les limites physiques 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 84jeudi 13 octobre 2011
    • Les Quotas ulimit, hyperviseurs, shaping réseau, les licences ... Mutualisation de ressources, Réserver des ressources au système, Priorisation de service, Facturation 85jeudi 13 octobre 2011
    • Les Limites configurables Configuration mémoire de la JVM (-Xmx) Tailles limites de pool Tailles limites de caches Nombre dʼinstances, de connexions ... 86jeudi 13 octobre 2011
    • 87jeudi 13 octobre 2011
    • 88jeudi 13 octobre 2011
    • - Se produit sous charge - Affecte tous les use cases - Souvent écroulement après un pic de charge Résolution Trouver la bonne configuration - utilisation optimale du CPU et pas plus - vmstat (runnable) 89jeudi 13 octobre 2011
    • Le régime restrictif 90jeudi 13 octobre 2011
    • - Se produit sous charge - Affecte tous les use cases Confirmation Saturation de limites configurées mais pas des limites matérielles Résolution Lever ces limites 91jeudi 13 octobre 2011
    • dimensionnement La limite logicielle est préférable à l’écroulement 92jeudi 13 octobre 2011
    • Comment dimensionner ? 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 93jeudi 13 octobre 2011
    • 94jeudi 13 octobre 2011
    • 95jeudi 13 octobre 2011
    • 96jeudi 13 octobre 2011
    • 97jeudi 13 octobre 2011
    • 98jeudi 13 octobre 2011
    • 99jeudi 13 octobre 2011
    • dimensionnement 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 100jeudi 13 octobre 2011
    • Cohérence plutôt que Rock StarS 101jeudi 13 octobre 2011
    • 102jeudi 13 octobre 2011
    • L emprunt à durée indéterminée 103jeudi 13 octobre 2011
    • 104jeudi 13 octobre 2011
    • - Se produit avec le temps même à faible charge - Affecte tous les use cases - Les indicateurs se dégradent progressivement Résolution 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 105jeudi 13 octobre 2011
    • Mémoire Connexion non rendue au pool Thread bloqué 106jeudi 13 octobre 2011
    • Les pseudo fuites ... aka les caches Evaluer lutilité : thrashing, jamais relus Utiliser un vrai cache : durée de rétention, recyclage Weak reference, soft reference 107jeudi 13 octobre 2011
    • La voie unique 108jeudi 13 octobre 2011
    • 109jeudi 13 octobre 2011
    • 110jeudi 13 octobre 2011
    • - Très faible consommation de ressources - Temps très longs (time-outs) - Affecte particulièrement certains use cases et à faible charge Confirmation Trouver le lock Provoquer le lock - test à 2 utilisateurs synchronisés → 1 des 2 est deux fois plus long 111jeudi 13 octobre 2011
    • Java → Thread Dump + outil danalyse (MAT, JCA, HealthCenter, Samourai) Evaluer les portées des synchronized Attention aux variables communes (données et compteurs applicatifs) BD → voir les outils de DBA 112jeudi 13 octobre 2011
    • La chaise musicale 113jeudi 13 octobre 2011
    • 114jeudi 13 octobre 2011
    • Utilisation par plusieurs threads de variables de classe non multi-thread safe (formatters) 115jeudi 13 octobre 2011
    • - Erreurs dincohérence - Affecte plus certains use cases - A faible charge - Instabilité Confirmation Provoquer le problème - test synchronisés → 1 des 2 est en erreur ... si vous avez de la chance 116jeudi 13 octobre 2011
    • Très difficile à identifier 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 117jeudi 13 octobre 2011
    • 118jeudi 13 octobre 2011
    • 119jeudi 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 120jeudi 13 octobre 2011
    • Que dis cette bimodale ? 121jeudi 13 octobre 2011
    • Que dis cette bimodale ? Comportement différent selon les Plusieurs cas sous instances le même use case mesuré Lock Cache 122jeudi 13 octobre 2011
    • Patience et longueur de temps ... 123jeudi 13 octobre 2011
    • 124jeudi 13 octobre 2011
    • Le processus 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èses Ne pas choisir une vérité trop rapidement Boucler 125jeudi 13 octobre 2011
    • Lorsque vous avez éliminé limpossible, ce qui reste, si improbable soit-il, est nécessairement la vérité. Arthur Conan Doyle (Le signe des quatre) 126jeudi 13 octobre 2011
    • 127jeudi 13 octobre 2011
    • Non contributifs Les erreurs dans les logs (en permanence) Uniquement sur la nouvelle plate-forme Non applicatif Peu dutilisateurs et de requêtes Exclus la charge Aucun signe de saturation avant le crash Perte du monitoring Réseau ? LOS est inaccessible Tout marche après redémarrage de lOS Donc pas coupure réseau Perte du service systématique après 2j ouvrés Vieillissement ? mais pas de symptômes ... Et qui peut bloquer l’accès à l’OS 128jeudi 13 octobre 2011
    • Fuite de connexions LDAP Limite du nombre de connexions réseau autorisées sous Windows Plus d’accès réseau Perte du monitoring LOS est inaccessible Uniquement sur la nouvelle plate-forme Applicatif Lancienne plate-forme avait été modifiée 129jeudi 13 octobre 2011
    • Conclusion . 130jeudi 13 octobre 2011
    • Priorités Fonctions Robustesse Stabilité Rapidité 131jeudi 13 octobre 2011
    • 132jeudi 13 octobre 2011
    • 133jeudi 13 octobre 2011
    • 134jeudi 13 octobre 2011
    • 135jeudi 13 octobre 2011