SlideShare uma empresa Scribd logo
1 de 140
Baixar para ler offline
Diagnostic performance


                                     Claude Falguière
                                         Geneva JUG
                                     le 12 Octobre 2011

                                       JUGL Lausanne
                                     le 13 Octobre 2011




                               1
vendredi 14 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 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.




                                                   2
vendredi 14 octobre 2011
Claude Falguière
                                           @cfalguiere


                           Technique




                                       3
vendredi 14 octobre 2011
4
vendredi 14 octobre 2011
Faux ami 1
                              La dream Team
                                X est performant
                                Y est performant
                                Z est performant
                                        =>
                           Mon système est performant


                                        5
vendredi 14 octobre 2011
Sprint ou
                               marathon ?




                           6
vendredi 14 octobre 2011
Bus RATP


              Vitesse ou
              charge ?




                                                  Modèle Fiat 500

                           Modèle Simlocker


                                              7
vendredi 14 octobre 2011
Faux ami 2

                           C’est du bon sens !



                                    8
vendredi 14 octobre 2011
User expe!ence




                           9
vendredi 14 octobre 2011
Subjectif
                           Complexité supposée
                           Ordre d'affichage
                           Stabilité

                           10
vendredi 14 octobre 2011
Logique
                  mais souvent
                                         Nombreux composants
                                         Interactions complexes

                                         Caches

                  Contre-intuitif        Mécanismes correctifs




                                    11
vendredi 14 octobre 2011
Faux ami 3

                           Avec le cloud fini
                             les problèmes


                                   12
vendredi 14 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
vendredi 14 octobre 2011
S(t)imuler

                               14
vendredi 14 octobre 2011
15
vendredi 14 octobre 2011
Quels vont faire
                           les utilisateurs
                           en production ?




                                              16
vendredi 14 octobre 2011
Les volumétries ?
                           Les dimensionnements ?




                           17
vendredi 14 octobre 2011
Les risques à vérifier ?
                                Les critères à mesurer ?




                           18
vendredi 14 octobre 2011
Qui ? Quoi ?
                           Où ? Quand ? Combien ?
                           Comment ? Pourquoi ?




                             19
vendredi 14 octobre 2011
Qui ?




                           20
vendredi 14 octobre 2011
Qui ? Quoi ?
                                      Consultations




                                                      Paie
                           Recherche
                           complexe
                                 21
vendredi 14 octobre 2011
Qui ? Quoi ?




                           22
vendredi 14 octobre 2011
Combien ? Quand ?

               Quelle heure ?

               Quel jour ?

               Pics




                                23
vendredi 14 octobre 2011
Pourquoi ?



                           Les enjeux        Les coûts




                                        24
vendredi 14 octobre 2011
Pourquoi ?



               Temps de réponse
               et
               Disponibilité, Stabilité       GALERIEopWEG

               Robustesse
               Vieillissement
               Résistance à l'effet Twitter
               Consommation de ressources



                                    25
vendredi 14 octobre 2011                                     G
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?
                                        26
vendredi 14 octobre 2011
Représentativité


                                  27
vendredi 14 octobre 2011
représentativité



                           Le résultat du test dépend
                                   totalement
                              des scénarios définis
                           et de leur implémentation




                                        19
                                        28
vendredi 14 octobre 2011
représentativité



                           Le résultat du test dépend
                                   totalement
                              des scénarios définis
                           et de leur implémentation


                           Garbage In → Garbage Out


                                        19
                                        28
vendredi 14 octobre 2011
Les biais




                           19
                           29
vendredi 14 octobre 2011
Les biais




                           temps de réponse = 0,2s
           Garbage In            Garbage Out




                            19
                            30
vendredi 14 octobre 2011
Les biais




              Martineric


                           Vrai vie        Test en éprouvette



                                      31
vendredi 14 octobre 2011
Les biais




                             Biais

              Martineric     Nombre,
                              Durée,
                           Comportement

                             32
vendredi 14 octobre 2011
Le Jeu

         Trouvez des biais         Trouvez des biais qui
         qui rendront le           rendront le résultat
         résultat meilleur         plus mauvais

                              33
vendredi 14 octobre 2011
Volumétries




                           34
vendredi 14 octobre 2011
Structure des données




                           35
vendredi 14 octobre 2011
Gestion des erreurs




                           Bref ... pas facile


                                   36
vendredi 14 octobre 2011
Cumulus

                              37
vendredi 14 octobre 2011
DEV


                                  OPS
                             38
vendredi 14 octobre 2011
39
vendredi 14 octobre 2011
Si vous avez un
                            marteau
                           tout ressemble à un

                              clou
                                    40
vendredi 14 octobre 2011
Donʼt shoot in the dark




                                      41
vendredi 14 octobre 2011
travailler
                           ensemble  ?


                                42
vendredi 14 octobre 2011
43
vendredi 14 octobre 2011
44
vendredi 14 octobre 2011
Et chez vous ?

                           45
vendredi 14 octobre 2011
Partager

                              46
vendredi 14 octobre 2011
Ne pas chercher au hasard




                           47
vendredi 14 octobre 2011
Ne pas chercher au hasard


                                La pêche aux
                                   infos ...




                           48
vendredi 14 octobre 2011
Explicitez vos
                         hypothèses
                     et votre démarche

                             49
vendredi 14 octobre 2011
50
vendredi 14 octobre 2011
51
vendredi 14 octobre 2011
52
vendredi 14 octobre 2011
LaScène
                           de Crime


                                53
vendredi 14 octobre 2011
54
vendredi 14 octobre 2011
55
vendredi 14 octobre 2011
56
vendredi 14 octobre 2011
57
vendredi 14 octobre 2011
58
vendredi 14 octobre 2011
Investigations

                           59
vendredi 14 octobre 2011
Que fait ce système ?




                                     60
vendredi 14 octobre 2011
61
vendredi 14 octobre 2011
Comment ça marche ?




                                 62
vendredi 14 octobre 2011
63
vendredi 14 octobre 2011
64
vendredi 14 octobre 2011
65
vendredi 14 octobre 2011
66
vendredi 14 octobre 2011
67
vendredi 14 octobre 2011
Jusque là

                           tout
                           va bien
                                68
vendredi 14 octobre 2011
69
vendredi 14 octobre 2011
Mesurer


            Ce que vous mesurez doit servir
            - à bâtir des hypothèses
            - à confirmer des hypothèses
                                               Est ce que le
                                                réseau est
                                                surutilisé ?
                                 Est ce que je
                            passe du temps côté
                             client ou serveur ?


                                       70
vendredi 14 octobre 2011
Dresser
                    le bilan



                           71
vendredi 14 octobre 2011
72
vendredi 14 octobre 2011
73
vendredi 14 octobre 2011
74
vendredi 14 octobre 2011
75
vendredi 14 octobre 2011
76
vendredi 14 octobre 2011
77
vendredi 14 octobre 2011
78
vendredi 14 octobre 2011
Gagnez
   du
   temps




                           79
vendredi 14 octobre 2011
Série Chronologique




     Et sa distribution




                            80
vendredi 14 octobre 2011
Quelques
                                             mauvais
                                             temps isolés



                           Temps très
                            variables




                                        Bimodale !? ...

                                        81
vendredi 14 octobre 2011
Douter
                              82
vendredi 14 octobre 2011
Latences

                           83
vendredi 14 octobre 2011
Toujours vérifier




                            MAN
                           150 Mb




                              84
vendredi 14 octobre 2011
Toujours vérifier

        et prouver
        vos dires

                                    test JMeter
                                     sur place
                           MAN
                              ?
                           150 Mb
                                    débit < 2Mb




                              85
vendredi 14 octobre 2011
Toujours vérifier




                                2Mb




                           86
vendredi 14 octobre 2011
Patterns

                           87
vendredi 14 octobre 2011
88
vendredi 14 octobre 2011
La rançon du
                           succès
                                89
vendredi 14 octobre 2011
90
vendredi 14 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

                                     91
vendredi 14 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



                                       92
vendredi 14 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




                                     93
vendredi 14 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 ...




                                    94
vendredi 14 octobre 2011
95
vendredi 14 octobre 2011
96
vendredi 14 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)
                                           97
vendredi 14 octobre 2011
Le régime restrictif




                                    98
vendredi 14 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
                                       99
vendredi 14 octobre 2011
dimensionnement




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

                                             100
vendredi 14 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


                                101
vendredi 14 octobre 2011
102
vendredi 14 octobre 2011
103
vendredi 14 octobre 2011
104
vendredi 14 octobre 2011
105
vendredi 14 octobre 2011
106
vendredi 14 octobre 2011
107
vendredi 14 octobre 2011
dimensionnement

                           Tout ce qui rentre doit ressortir
                           … en moyenne


                           Le nombre d’actifs est défini
                           par la taille du pool
                           Les files d’attente régulent les
                           variations de débit

                                          108
vendredi 14 octobre 2011
Cohérence
                            plutôt que

                           Rock StarS


                                 109
vendredi 14 octobre 2011
110
vendredi 14 octobre 2011
L'   emprunt
                           à    durée
                           indéterminée
                                  111
vendredi 14 octobre 2011
112
vendredi 14 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
                                          113
vendredi 14 octobre 2011
Mémoire
              Connexion non rendue au pool
              Thread bloqué

                                 114
vendredi 14 octobre 2011
Les pseudo fuites
       ... aka les caches

                           Evaluer l'utilité :
                           thrashing, jamais relus

                           Utiliser un vrai cache :
                           durée de rétention,
                           recyclage

        Weak reference,
        soft reference

                              115
vendredi 14 octobre 2011
La   voie
                           unique
                                 116
vendredi 14 octobre 2011
117
vendredi 14 octobre 2011
118
vendredi 14 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

                                        119
vendredi 14 octobre 2011
Java
                           → Thread Dump + outil d'analyse
                              (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
                                           120
vendredi 14 octobre 2011
La

                           chaise
                           musicale
                                121
vendredi 14 octobre 2011
122
vendredi 14 octobre 2011
Utilisation par plusieurs
                           threads de variables de
                           classe non multi-thread safe
                           (formatters)




                           123
vendredi 14 octobre 2011
-   Erreurs d'incohé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


                                           124
vendredi 14 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


                                    125
vendredi 14 octobre 2011
126
vendredi 14 octobre 2011
127
vendredi 14 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



                                         128
vendredi 14 octobre 2011
Que dis cette bimodale ?




                           129
vendredi 14 octobre 2011
Que dis cette bimodale ?

             Comportement
             différent selon les    Plusieurs cas sous
             instances              le même use case
                                    mesuré


                                                   Lock


                                                 Cache


                                   130
vendredi 14 octobre 2011
Patience et
                longueur de
                  temps ...
                           131
vendredi 14 octobre 2011
132
vendredi 14 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
                                       133
vendredi 14 octobre 2011
Conclusion .

                                134
vendredi 14 octobre 2011
Priorités



                           Fonctions
                           Robustesse
                            Stabilité
                             Rapidité

                                135
vendredi 14 octobre 2011
Tester (s’entraîner)




                           136
vendredi 14 octobre 2011
Surveiller


                Monitorer
                       autodiagnostic
                       journaux,
                       alertes


                 Anticiper
                       ≠ planifier



                                        137
vendredi 14 octobre 2011
138
vendredi 14 octobre 2011
139
vendredi 14 octobre 2011

Mais conteúdo relacionado

Mais de Claude Falguiere

Pres perf human talks mars 2015
Pres perf human talks mars 2015Pres perf human talks mars 2015
Pres perf human talks mars 2015Claude Falguiere
 
Presentation devoxx4kids à iut-agile
Presentation devoxx4kids à iut-agilePresentation devoxx4kids à iut-agile
Presentation devoxx4kids à iut-agileClaude Falguiere
 
Le monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big DataLe monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big DataClaude Falguiere
 
Présentation du user group Duchess France au GDG de Nantes
Présentation du user group Duchess France au GDG de NantesPrésentation du user group Duchess France au GDG de Nantes
Présentation du user group Duchess France au GDG de NantesClaude Falguiere
 
Présentation de Page Speed au GDG de Nantes
Présentation de Page Speed au GDG de NantesPrésentation de Page Speed au GDG de Nantes
Présentation de Page Speed au GDG de NantesClaude Falguiere
 
Présentation Performances Montpellier
Présentation Performances Montpellier Présentation Performances Montpellier
Présentation Performances Montpellier Claude Falguiere
 
Pres android nuit de l'info v3
Pres android nuit de l'info v3Pres android nuit de l'info v3
Pres android nuit de l'info v3Claude Falguiere
 
Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Claude Falguiere
 
La marmite Intro session NoSQL
La marmite Intro session NoSQLLa marmite Intro session NoSQL
La marmite Intro session NoSQLClaude Falguiere
 
Analyse de données avec Incanter
Analyse de données avec IncanterAnalyse de données avec Incanter
Analyse de données avec IncanterClaude Falguiere
 
Analyse de données avec Incanter
Analyse de données avec IncanterAnalyse de données avec Incanter
Analyse de données avec IncanterClaude Falguiere
 
Deploiement continu breizh camp
Deploiement continu breizh campDeploiement continu breizh camp
Deploiement continu breizh campClaude Falguiere
 
Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011Claude Falguiere
 
Mesurer les performances avec JMeter
Mesurer les performances avec JMeterMesurer les performances avec JMeter
Mesurer les performances avec JMeterClaude Falguiere
 
No sql pour valtech tech days
No sql pour valtech tech daysNo sql pour valtech tech days
No sql pour valtech tech daysClaude Falguiere
 
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010Claude Falguiere
 

Mais de Claude Falguiere (18)

Pres perf human talks mars 2015
Pres perf human talks mars 2015Pres perf human talks mars 2015
Pres perf human talks mars 2015
 
Devoxx 2014 Monitoring
Devoxx 2014 Monitoring Devoxx 2014 Monitoring
Devoxx 2014 Monitoring
 
Presentation devoxx4kids à iut-agile
Presentation devoxx4kids à iut-agilePresentation devoxx4kids à iut-agile
Presentation devoxx4kids à iut-agile
 
Le monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big DataLe monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big Data
 
Présentation du user group Duchess France au GDG de Nantes
Présentation du user group Duchess France au GDG de NantesPrésentation du user group Duchess France au GDG de Nantes
Présentation du user group Duchess France au GDG de Nantes
 
Présentation de Page Speed au GDG de Nantes
Présentation de Page Speed au GDG de NantesPrésentation de Page Speed au GDG de Nantes
Présentation de Page Speed au GDG de Nantes
 
Présentation Performances Montpellier
Présentation Performances Montpellier Présentation Performances Montpellier
Présentation Performances Montpellier
 
Pres android nuit de l'info v3
Pres android nuit de l'info v3Pres android nuit de l'info v3
Pres android nuit de l'info v3
 
Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012
 
La marmite Intro session NoSQL
La marmite Intro session NoSQLLa marmite Intro session NoSQL
La marmite Intro session NoSQL
 
Analyse de données avec Incanter
Analyse de données avec IncanterAnalyse de données avec Incanter
Analyse de données avec Incanter
 
Analyse de données avec Incanter
Analyse de données avec IncanterAnalyse de données avec Incanter
Analyse de données avec Incanter
 
Diagnostic performances
Diagnostic performancesDiagnostic performances
Diagnostic performances
 
Deploiement continu breizh camp
Deploiement continu breizh campDeploiement continu breizh camp
Deploiement continu breizh camp
 
Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011Deploiement continu AgileFfrance 2011
Deploiement continu AgileFfrance 2011
 
Mesurer les performances avec JMeter
Mesurer les performances avec JMeterMesurer les performances avec JMeter
Mesurer les performances avec JMeter
 
No sql pour valtech tech days
No sql pour valtech tech daysNo sql pour valtech tech days
No sql pour valtech tech days
 
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010Mesurer Les Performances Avec JMeter   Cours Du Soir Valtech 25 Mars 2010
Mesurer Les Performances Avec JMeter Cours Du Soir Valtech 25 Mars 2010
 

Diagnostic performances

  • 1. Diagnostic performance Claude Falguière Geneva JUG le 12 Octobre 2011 JUGL Lausanne le 13 Octobre 2011 1 vendredi 14 octobre 2011
  • 2. 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 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. 2 vendredi 14 octobre 2011
  • 3. Claude Falguière @cfalguiere Technique 3 vendredi 14 octobre 2011
  • 5. Faux ami 1 La dream Team X est performant Y est performant Z est performant => Mon système est performant 5 vendredi 14 octobre 2011
  • 6. Sprint ou marathon ? 6 vendredi 14 octobre 2011
  • 7. Bus RATP Vitesse ou charge ? Modèle Fiat 500 Modèle Simlocker 7 vendredi 14 octobre 2011
  • 8. Faux ami 2 C’est du bon sens ! 8 vendredi 14 octobre 2011
  • 9. User expe!ence 9 vendredi 14 octobre 2011
  • 10. Subjectif Complexité supposée Ordre d'affichage Stabilité 10 vendredi 14 octobre 2011
  • 11. Logique mais souvent Nombreux composants Interactions complexes Caches Contre-intuitif Mécanismes correctifs 11 vendredi 14 octobre 2011
  • 12. Faux ami 3 Avec le cloud fini les problèmes 12 vendredi 14 octobre 2011
  • 13. Essentiellement du scale out Dʼautres problèmes liés à la mutualisation (latence I/O) Coût de la montée en charge 13 vendredi 14 octobre 2011
  • 14. S(t)imuler 14 vendredi 14 octobre 2011
  • 16. Quels vont faire les utilisateurs en production ? 16 vendredi 14 octobre 2011
  • 17. Les volumétries ? Les dimensionnements ? 17 vendredi 14 octobre 2011
  • 18. Les risques à vérifier ? Les critères à mesurer ? 18 vendredi 14 octobre 2011
  • 19. Qui ? Quoi ? Où ? Quand ? Combien ? Comment ? Pourquoi ? 19 vendredi 14 octobre 2011
  • 20. Qui ? 20 vendredi 14 octobre 2011
  • 21. Qui ? Quoi ? Consultations Paie Recherche complexe 21 vendredi 14 octobre 2011
  • 22. Qui ? Quoi ? 22 vendredi 14 octobre 2011
  • 23. Combien ? Quand ? Quelle heure ? Quel jour ? Pics 23 vendredi 14 octobre 2011
  • 24. Pourquoi ? Les enjeux Les coûts 24 vendredi 14 octobre 2011
  • 25. Pourquoi ? Temps de réponse et Disponibilité, Stabilité GALERIEopWEG Robustesse Vieillissement Résistance à l'effet Twitter Consommation de ressources 25 vendredi 14 octobre 2011 G
  • 26. 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? 26 vendredi 14 octobre 2011
  • 27. Représentativité 27 vendredi 14 octobre 2011
  • 28. représentativité Le résultat du test dépend totalement des scénarios définis et de leur implémentation 19 28 vendredi 14 octobre 2011
  • 29. représentativité Le résultat du test dépend totalement des scénarios définis et de leur implémentation Garbage In → Garbage Out 19 28 vendredi 14 octobre 2011
  • 30. Les biais 19 29 vendredi 14 octobre 2011
  • 31. Les biais temps de réponse = 0,2s Garbage In Garbage Out 19 30 vendredi 14 octobre 2011
  • 32. Les biais Martineric Vrai vie Test en éprouvette 31 vendredi 14 octobre 2011
  • 33. Les biais Biais Martineric Nombre, Durée, Comportement 32 vendredi 14 octobre 2011
  • 34. Le Jeu Trouvez des biais Trouvez des biais qui qui rendront le rendront le résultat résultat meilleur plus mauvais 33 vendredi 14 octobre 2011
  • 35. Volumétries 34 vendredi 14 octobre 2011
  • 36. Structure des données 35 vendredi 14 octobre 2011
  • 37. Gestion des erreurs Bref ... pas facile 36 vendredi 14 octobre 2011
  • 38. Cumulus 37 vendredi 14 octobre 2011
  • 39. DEV OPS 38 vendredi 14 octobre 2011
  • 41. Si vous avez un marteau tout ressemble à un clou 40 vendredi 14 octobre 2011
  • 42. Donʼt shoot in the dark 41 vendredi 14 octobre 2011
  • 43. travailler ensemble  ? 42 vendredi 14 octobre 2011
  • 46. Et chez vous ? 45 vendredi 14 octobre 2011
  • 47. Partager 46 vendredi 14 octobre 2011
  • 48. Ne pas chercher au hasard 47 vendredi 14 octobre 2011
  • 49. Ne pas chercher au hasard La pêche aux infos ... 48 vendredi 14 octobre 2011
  • 50. Explicitez vos hypothèses et votre démarche 49 vendredi 14 octobre 2011
  • 54. LaScène de Crime 53 vendredi 14 octobre 2011
  • 60. Investigations 59 vendredi 14 octobre 2011
  • 61. Que fait ce système ? 60 vendredi 14 octobre 2011
  • 63. Comment ça marche ? 62 vendredi 14 octobre 2011
  • 69. Jusque là tout va bien 68 vendredi 14 octobre 2011
  • 71. Mesurer Ce que vous mesurez doit servir - à bâtir des hypothèses - à confirmer des hypothèses Est ce que le réseau est surutilisé ? Est ce que je passe du temps côté client ou serveur ? 70 vendredi 14 octobre 2011
  • 72. Dresser le bilan 71 vendredi 14 octobre 2011
  • 80. Gagnez du temps 79 vendredi 14 octobre 2011
  • 81. Série Chronologique Et sa distribution 80 vendredi 14 octobre 2011
  • 82. Quelques mauvais temps isolés Temps très variables Bimodale !? ... 81 vendredi 14 octobre 2011
  • 83. Douter 82 vendredi 14 octobre 2011
  • 84. Latences 83 vendredi 14 octobre 2011
  • 85. Toujours vérifier MAN 150 Mb 84 vendredi 14 octobre 2011
  • 86. Toujours vérifier et prouver vos dires test JMeter sur place MAN ? 150 Mb débit < 2Mb 85 vendredi 14 octobre 2011
  • 87. Toujours vérifier 2Mb 86 vendredi 14 octobre 2011
  • 88. Patterns 87 vendredi 14 octobre 2011
  • 90. La rançon du succès 89 vendredi 14 octobre 2011
  • 92. - 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 91 vendredi 14 octobre 2011
  • 93. 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 92 vendredi 14 octobre 2011
  • 94. Les Quotas ulimit, hyperviseurs, shaping réseau, les licences ... Mutualisation de ressources, Réserver des ressources au système, Priorisation de service, Facturation 93 vendredi 14 octobre 2011
  • 95. Les Limites configurables Configuration mémoire de la JVM (-Xmx) Tailles limites de pool Tailles limites de caches Nombre dʼinstances, de connexions ... 94 vendredi 14 octobre 2011
  • 98. - 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) 97 vendredi 14 octobre 2011
  • 99. Le régime restrictif 98 vendredi 14 octobre 2011
  • 100. - 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 99 vendredi 14 octobre 2011
  • 101. dimensionnement La limite logicielle est préférable à l’écroulement 100 vendredi 14 octobre 2011
  • 102. 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 101 vendredi 14 octobre 2011
  • 109. dimensionnement Tout ce qui rentre doit ressortir … en moyenne Le nombre d’actifs est défini par la taille du pool Les files d’attente régulent les variations de débit 108 vendredi 14 octobre 2011
  • 110. Cohérence plutôt que Rock StarS 109 vendredi 14 octobre 2011
  • 112. L' emprunt à durée indéterminée 111 vendredi 14 octobre 2011
  • 114. - 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 113 vendredi 14 octobre 2011
  • 115. Mémoire Connexion non rendue au pool Thread bloqué 114 vendredi 14 octobre 2011
  • 116. Les pseudo fuites ... aka les caches Evaluer l'utilité : thrashing, jamais relus Utiliser un vrai cache : durée de rétention, recyclage Weak reference, soft reference 115 vendredi 14 octobre 2011
  • 117. La voie unique 116 vendredi 14 octobre 2011
  • 120. - 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 119 vendredi 14 octobre 2011
  • 121. Java → Thread Dump + outil d'analyse (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 120 vendredi 14 octobre 2011
  • 122. La chaise musicale 121 vendredi 14 octobre 2011
  • 124. Utilisation par plusieurs threads de variables de classe non multi-thread safe (formatters) 123 vendredi 14 octobre 2011
  • 125. - Erreurs d'incohé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 124 vendredi 14 octobre 2011
  • 126. 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 125 vendredi 14 octobre 2011
  • 129. - 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 128 vendredi 14 octobre 2011
  • 130. Que dis cette bimodale ? 129 vendredi 14 octobre 2011
  • 131. Que dis cette bimodale ? Comportement différent selon les Plusieurs cas sous instances le même use case mesuré Lock Cache 130 vendredi 14 octobre 2011
  • 132. Patience et longueur de temps ... 131 vendredi 14 octobre 2011
  • 134. 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 133 vendredi 14 octobre 2011
  • 135. Conclusion . 134 vendredi 14 octobre 2011
  • 136. Priorités Fonctions Robustesse Stabilité Rapidité 135 vendredi 14 octobre 2011
  • 137. Tester (s’entraîner) 136 vendredi 14 octobre 2011
  • 138. Surveiller Monitorer autodiagnostic journaux, alertes Anticiper ≠ planifier 137 vendredi 14 octobre 2011