A propos des problèmes de performance et des blocages

Des problèmes de performances surgissent dans différentes situations. Un "blocage" est un type de problème de performances se déroulant ainsi : les utilisateurs attendent une réponse pendant une période indéterminée. Les techniques d'identification des problèmes de blocage sont identiques aux techniques utilisées pour les autres problèmes de performances.

Voici quelques exemples de situations présentant des problèmes de performances évidents :

Il existe une légère différence entre chacune de ces situations. Une étape importante dans l'identification d'un problème consiste à déterminer si quelque chose est dans l'impossibilité de répondre aux attentes ou si l'étape demande une capacité de ressources trop élevée.

Les blocages peuvent être particulièrement difficiles à identifier car les symptômes correspondent souvent aux symptômes d'autres problèmes. Par exemple, si un utilisateur attend la réponse d'une requête pendant longtemps, il peut penser que le système est bloqué. Dans de nombreux cas, la requête est extrêmement complexe et le système exécute beaucoup d'applications au même moment. Ainsi, le système n'est pas suspendu : il est seulement très lent à répondre. Aussi, pendant un arrêt sévère du système, une accumulation importante d'activités peut passer pour une suspension de la plupart ou de toutes les commandes.

En plus de définir correctement le problème selon les caractéristiques des symptômes (lenteur, trop grande utilisation des ressources, etc.) et leur emplacement (dans une requête, une application, une ressource système, etc.), vous devez disposer d'autres éléments d'information afin de placer le problème dans son contexte.

Répondez aux questions suivantes pour déterminer rapidement le premier point à examiner pour rechercher la cause du problème de performances.
  1. Quand le problème s'est-il produit pour la première fois ?

    Si le problème s'est produit plusieurs fois et si un historique de contrôle des bases de données a été mis en place, vous pouvez utiliser les données chronologiques pour rechercher les différences. Cela mettra en évidence les modifications dans le comportement du système et les raisons de ces modifications (voir Outils de contrôle proactifs). Vous devez également déterminer si des modifications récentes ont eu lieu, telles que des mises à jour de matériel ou de logiciel, la mise en place d'une nouvelle application, des ajouts d'utilisateurs, etc.

  2. Le problème de performance est-il constant ou intermittent ?

    Si les performances sont constamment faibles, regardez si le système a commencé à traiter une charge de travail plus élevée ou si une ressource de bases de données partagée est devenue un goulot d'étranglement. Parmi d'autres causes potentielles de dégradation des performances, on trouve l'augmentation de l'activité des utilisateurs, le grand nombre d'applications lourdes ou le retrait de périphériques. Si les performances ne sont faibles que pendant de brèves périodes, commencez par examiner les applications ou les utilitaires communs en cours d'exécution pendant ces périodes. Si des utilisateurs signalent qu'un ensemble d'applications connaît des problèmes de performance, vous pouvez commencer votre analyse en cherchant parmi ces applications.

  3. Le problème semble-t-il affecter l'ensemble du système un uniquement le produit ?

    Les problèmes de performances de niveau système suggèrent un problème indépendant du produit. Il est fort possible que le problème soit lié au système d'exploitation.

  4. Si le problème est lié à une application, une requête particulière semble-t-elle être la cause du problème ?

    Si c'est le cas, vous pouvez déterminer si des utilisateurs signalent qu'une requête ou un ensemble de requêtes connaît un ralentissement. Vous pouvez isoler le problème à une application et à un groupe potentiel de requêtes.

  5. Avez-vous remarqué des caractéristiques communes au ralentissement des performances, ou les problèmes semblent-ils être aléatoires ?

    Vous devriez déterminer si des objets communs (tels que des tables de bases de données, des espaces tables, des index, etc.) sont concernés. Si c'est le cas, cela signifie que ces objets constituent un point de conflit. Il existe d'autres zones possibles à examiner : les contraintes d'intégrité référentielle, les cascades de clés externes, les problèmes de verrouillage, etc.


Commentaires en retour