Gestion des performances des SGBD : ce qu’il faut savoir avant de se lancer
Les solutions de gestion des performances des bases de données identifient les goulets d’étranglements et les points de contentions, surveillent les débits et les workloads, gèrent les systèmes et mesurent les utilisations des ressources.
Garantir un bon niveau de performance des systèmes de gestion de bases de données est un pré-requis indispensable à toutes infrastructures modernes. Il existe plusieurs types d’outils dont la vocation première est d’aider les administrateurs de bases de données à contrôler, gérer et améliorer les performances de leurs bases et des applications qui s’y adossent. Toutefois, avant de savoir si cela est fait pour vous, il convient de mieux définir le concept de performance des bases de données.
Cela peut être en premier lieu défini par le taux et le niveau d’accès avec lesquels la base de données fournit l’information aux utilisateurs. Afin de mieux comprendre ce qui influence les performances d’une base, passons en revue 5 concepts clés inhérents aux bases :
- Les workloads correspondent à l’activité que l’on demande à la base de données. Cela détermine la consommation des ressources du système. Les workloads peuvent être des transactions, des batchs, des requêtes ad hoc, des outils de reporting et d’analyse, et des commandes passées au système par exemple. Ces workloads sont sujettes à d’importantes variations, à la journée, à l’heure voire à la minute. Parfois elles sont constantes et donc prévisibles, mais à d’autres moment, elles peuvent atteindre des pics, comme c’est par exemple le cas lors du Black Friday qui génère un accroissement des transactions.
- La capacité de rendement mesure la capacité du système à traiter les données en prenant en compte les entrées-sorties et la vitesse CPU. Elle peut être ralentie par les traitements parallélisés du serveur de la base ou encore par la gestion de l’OS.
- Les ressources sont les outils hardware et logiciels dont dispose le système, comme l’espace disque, le mémoire, le cache, etc... Les performances liées à l’accès et à la modification des données peuvent être améliorées par une allocation appropriée des ressources.
- L’optimisation accélère les requêtes. Tous les systèmes peuvent être optimisés mais les bases de données relationnelles sont uniques dans leur façon d’optimiser les requêtes. D’autres facteurs doivent aussi être considérés comme la configuration de la base et la formulation des requêtes SQL.
- La contention est le résultat d’une demande élevée en matière de ressources, lorsque par exemple, deux composants d’une workload tentent d’utiliser une unique ressource. La contention augmente, le rendement diminue.
Ainsi le concept de performances des bases de données peut être défini plus précisément par l’optimisation de l’utilisation des ressources afin d’augmenter la capacité de traitement, minimiser la contention, et permettre un rendement plus étendu des workloads.
Les différents types d’applications de gestion des performances
Avant d’examiner plus en détails les différents types d’outils de gestion des performances, il convient de différencier monitoring des performances et gestion des performance. Même si cela est bien différent, il est justement facile de confondre les deux. En fait, le monitoring de performances est un aspect de la gestion des performances qui réalise 3 opérations :
- Monitorer le système de base de données pour identifier les problèmes quand ils apparaissent ;
- Analyser les données du système pour mettre en place une action correctrice ;
- Implémenter une réponse pour résoudre le problème.
Les outils liés aux performances agissent sur ces trois axes. Mais certains dissocient le monitoring de la résolution, alors que d’autres proposent une offre combinée.
Ces applications peuvent aussi être classées par types de problèmes ciblés. Par exemple, gérer les performances implique d’avoir 3 repères :
- Le système de gestion des bases de données. Cela permet de stocker les données et aux applications d’y accéder. Il doit interagir avec les autres systèmes et le hardware, et nécessite pour cela la bonne configuration pour garantir un fonctionnement optimisé. De plus, de nombreux paramètres du système qui configurent les ressources peuvent être utilisés. Cela porte sur des critères clés, comme la capacité de la mémoire ou le débit des entrées-sorties par exemple.
- Les structures de bases de données. La conception des bases de données, des tables et des indexes peuvent aussi impacter la performance de la base. Certains problèmes portent sur la conception physique, l’utilisation des disques, le nombre de tables et d’indexes. La façon dont les données sont organisées doit aussi être prise en compte. Il faut savoir que si la donnée est modifiée sur la base, son efficacité est dégradée. La réorganisation et la défragmentation sont nécessaires pour remettre de l’ordre dans ces données désorganisées.
- SQL et le code de l’application. Programmer des commandes SQL efficaces peut certes être compliqué car il existe de nombreuses façons d’écrire du SQL pour un résultat identique. Mais l’efficacité et les performances de chaque requête peuvent varier. Les administrateurs doivent alors utiliser des outils capables de monitorer les code SQL exécuté, et exposer des méthodes d’optimisation.
Quand utiliser des outils de gestion des performances de bases de données
D’un point de vue général, ces applications peuvent globalement identifier les goulots d’étranglement, les points de contention, monitorer les workoards et les rendus, analyser les performances de SQL, contrôler l’espace disque et la fragmentation, gérer le système et son utilisation des ressources.
Les problèmes liés aux performances de la base sont généralement remontés par les utilisateurs qui ne peuvent pas travailler efficacement. Généralement, leur explication reste vague : « le système est lent » ou « cela est moins rapide que d’habitude ». Cela implique donc de cibler le vrai problème pour ensuite utiliser d’autres outils pour la solution. Les outils de gestion des performances peuvent aider à trouver le problème ainsi qu’à identifier une solution.
Ces outils sont aussi indispensables pour les entreprises qui ont des SLA en place pour encadrer les performances de leurs applications. Ces outils contribuent alors à garantir les bons SLA à tous les utilisateurs, selon les priorités métier, et à un coût raisonnable.
Nombre d’entreprises exploitent plusieurs bases de données et leurs administrateurs ont la charge d’assurer un bon niveau de performances. Mais chaque système dispose d’interfaces, de configurations et de paramètres différents susceptibles d’affecter ces performances. Certains outils peuvent gérer cette complexité en s’appuyant sur des interfaces intelligentes qui fédèrent des différents composants.
Le marché des applications de gestion des performances
Le marché peut être divisé en 3 catégories. La première est celle qui rassemble les éditeurs de bases de données, comme IBM, Microsoft ou Oracle. Ces acteurs commercialisent des outils de gestion avec leurs bases, ainsi que des applications pour gérer des environnements hétérogènes. La seconde catégorie englobe les grands fournisseurs et ISV comme BMC, CA et Dell qui revendent des outils de gestion de la performance. La troisième, des acteurs de niche, comprend des entreprises spécialisées dans les outils de gestion, comme SolarWinds ou Idera.
Ces outils sont généralement commercialisés directement auprès du client. Le modèle de licence repose sur le nombre d’utilisateurs, le nombre de cœur ou la taille du serveur. Les outils de gestion des performances sont aussi packagés avec les bases de données.
Les applications de gestion des performances des bases de données constituent une partie significative du marché global de la gestion des performances IT. Il existe aujourd’hui de nombreuses solutions.
Série performances des bases de données
Cet article fait partie d’une série en 4 parties :
- Gestion des performances des SGBD : ce qu’il faut savoir avant de se lancer
- Performances des bases de données : quels outils et fonctions prendre en compte
- Performances des bases de données : trois signaux pour identifier les problèmes
- Bien choisir ses outils de gestion de performance des bases de données (à paraitre)