You are on page 1of 16

Le spcialiste des bases de donnes

Conseil / Service / Formation / Infogrance www.capdata.fr

Exemple dAudit de performance Effectu en Janvier 2004 1,5 jours (Inclus le temps de rdaction du rapport)

Le spcialiste des bases de donnes

SOMMAIRE 1. 2. 3. 4. 5. Objectif de la mission ............................................................................................................. 2 Etat davancement................................................................................................................... 2 Conclusion de laudit .............................................................................................................. 3 Lenvironnement technique .................................................................................................... 4 Audit du serveur...................................................................................................................... 5 5.1 Analyse des performances globales (tude sur 24H)............................................................ 5 5.2 Elments de configuration .................................................................................................. 10 5.2.1 Matriel ........................................................................................................................ 10 5.2.2 Systme dexploitation................................................................................................. 12 6. Audit du dataserver ............................................................................................................... 13 6.1 Paramtrage du moteur SQL............................................................................................... 13 6.2 Paramtrage des bases utilisateurs ...................................................................................... 14 6.3 Analyse des logs ................................................................................................................. 14 7. Audit de la couche applicative.............................................................................................. 15

1 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

1. Objectif de la mission
Le but de cette mission est d'auditer le serveur principal de bases de donnes de la socit Nom_Socit afin de vrifier la configuration et didentifier les problmes de performance actuel et futur.

2. Etat davancement
Ces deux jours dintervention ont permis deffectuer les tches suivantes : Prise en compte du contexte Nom_Socit Prise en compte du modle de donnes Prise en compte de la configuration matriel Prise en compte de la configuration OS / SQL Server Prise en compte de la couche applicative Etude de performance du serveur NOM_SERVER Rdaction du rapport

2 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

3. Conclusion de laudit
Au terme de ces 2 journes, les conclusions de laudit sont : o Actions court terme : La stratgie dindexes nest pas optimale; celle-ci n'est pas correctement utilise par une partie des requtes SQL. Les temps dexcutions ainsi que la charge serveur pourraient tre rduits en adoptant une stratgie approprie. Cration de plans de maintenance hebdomadaire (r-indexations, checkdb, ) Une optimisation des dveloppements SQL les plus consommateurs en ressources CPU/IO (procdures stockes et requtes) devrait tre effectu (jointures, SARG, ) La configuration matrielle est correctement dimensionne, cependant lajout dun second processeur est conseill. Les stratgies de sauvegardes/restaurations ne permettent pas de minimiser le temps dindisponibilit, une refonte serait ncessaire. Une procdure dhistorisation des tables les plus importantes devrait tre mise en place afin de soulager les traitements journaliers. o Actions moyen terme : Le modle de donnes nest pas adapt la volumtrie importante de la base, il est primordial de procder la dnormalisation de certaines tables, ou mieux, reconcevoir certaines fonctions du modle. Il ny a aucune redondance ( part lOS) sur les donnes, logs et backups. Le crash dun disque provoquererait une interruption de service importante. Mise niveau vers les versions Enterprise de Windows 2000 et SQL Server 2000 (gestion de la totalit de la quantit de RAM).

3 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

4. Lenvironnement technique
NOM_SERVER est le serveur de bases de donnes de production, lensemble des procdures dimportations et segmentations sont prsentes sur cet environnement. Une seule instance SQL est dclare et hberge les deux bases principales : BASE1 : 18 887 Mo pour le segment de donnes 25 648 Mo pour le segment de logs 8 873 Mo pour le segment de donnes 33 480 Mo pour le segment de logs

BASE2 :

A premire vue, les deux bases tant complmentaires lune de lautre, il nest pas ncessaire de mettre en place une deuxime instance SQL ddie. En revanche, la taille des journaux de transactions pour les deux bases est surdimensionne par rapport la volumtrie des donnes. Il est donc essentiel de les rduire, soit en rcrivant les portions de codes posant problme et remplissant rgulirement la log, soit en installant une procdure automatique de troncature. NOM_SERVER est un serveur ddi SQL Server, cependant des utilisateurs sy connectent afin deffectuer des traitements (lancement de requtes via lanalyseur, excution de programmes etc.). Toutes ces oprations peuvent tre dplaces ct client, et ne doivent en aucune manire tre excutes directement sur le serveur. En effet, des dgradations de performances (ressource CPU) sont observes lors de telles oprations. Lenvironnement de production est bas sur le systme dexploitation Windows 2000 Server Standard (FR) et SQL Server 2000 Standard (FR). La quantit de RAM (4Go) est correcte pour une telle volumtrie, en revanche, lutilisation de la version standard de SQL Server instaure une limite pour le moteur (2Go maximum). Windows 2000 Server grant 4 Go maximum, 2Go environ ne seront jamais utilise. Pour profiter de cet espace mmoire libre, le passage aux versions Windows 2000 Advanced Server / SQL Server 2000 Enterprise est requis.

4 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

5. Audit du serveur
5.1 Analyse des performances globales (tude sur 24H) Analyse de la charge CPU La CPU est fortement utilise tout au long dune journe dexploitation. Bien que natteignant pas le seuil fatidique des 80% de sollicitation pendant une priode continue de 15 minutes, il est fortement conseill de passer en multi-processing en ajoutant un second processeur. Il est noter que lactivation de lhyperthreading ne procure aucun gain de performance.
Longueur de la file d'attente processeur
35

30

25

Longueur

20

15

10

0 0 1 1 2 3 3 4 5 5 6 7 7 8 9 12 13 13 14 15 15 16 17 17 18 19 19 20 21 21 22 23 23 9 10 11 11 12 13 Heure 13

5 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

% Temps processeur SQL Server


120

100

80

60

40

20

0 0 1 1 2 3 3 4 5 5 6 7 7 8 9 12 13 13 14 15 15 16 17 17 18 19 19 20 21 21 22 23 23 9 10 11 11 12 13 Heure 13

6 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

Analyse de la charge mmoire physique La quantit de mmoire disponible pour le moteur SQL est relativement satisfaisante. Cependant, tant donn la mmoire totale installe sur le serveur (4Go) et la volumtrie des bases de donnes, lutilisation totale des 4Go est vivement conseille (cf. environnement technique). Dans certains cas (lancement de batchs importants, ) des baisses de performances peuvent apparatre du fait dun manque de mmoire (10h/11h, 13h/15h, ).

Pages mmoire / sec


70

60

50

Pages/s

40

30

20

10

0 0 1 1 2 3 3 4 5 5 6 7 7 8 9 12 13 13 14 15 15 16 17 17 18 19 19 20 21 21 22 23 23 9 10 11 11 12 13 Heure 13

Des goulots dtranglements ponctuels peuvent tre observs; ces derniers sont dus la prsence dapplications non natives SQL Server sur le serveur ainsi que dun manque de mmoire. Il est conseill de dporter tous les traitements (batchs, analyseur de requtes, ) sur une machine cliente, et de laisser SQL Server comme application majeure, et si possible dutiliser les 2Go de RAM disponible (passage une version Enterprise).

7 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

Analyse du pourcentage daccs disque Le graphique suivant reprsente uniquement les performances des disques hbergeant les donnes. Des problmes dI/O sont clairement identifis (un systme de disques performant doit avoir son indice en dessous de 4). La qualit et la technologie des disques nest pas mettre en cause, mais plutt la structure du modle de donnes, le manque dindexes et la formulation des requtes. Un remaniement de certaines requtes/indexes devrait permettre de revenir un niveau normal.

Longueur file d'attente disque physique


250

200

150 % 100 50 0 0 1 1 2 3 3 4 5 5 6 7 7 8 9 12 13 13 14 15 15 16 17 17 18 19 19 20 21 21 22 23 23 9 10 11 11 12 13 Heure 13

8 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

Analyse du Buffer Cache Hit Ratio Ce compteur indique le nombre daccs (en %) effectu par le moteur SQL pour aller chercher des donnes dans son cache et non sur les disques. Un systme performant doit avoir un score suprieur 99%. Le cache semble ne pas tre utilis de faon optimale pendant la journe, une augmentation de mmoire pallierait ce problme (cf. Analyse de la charge mmoire).

Buffer Cache Hit Ratio


120

100

80

60

40

20

0 0 1 1 2 3 3 4 5 5 6 7 7 8 9 12 13 13 14 15 15 16 17 17 18 19 19 20 21 21 22 23 23 9 10 11 11 12 13 Heure 13

9 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

5.2 Elments de configuration

5.2.1 Matriel
Description HP/Compaq DL380G3 (rack) 1* Xeon (volutif bi-cpu) - HT activ 2.4 MHz 512 Ko 4 Go C=17Go, D=273Go, E=136Go, G=136Go 2 pour l'OS, 2 pour les datas, 1 pour les logs, 1 pour les backups RAID1 (OS), RAID0 (datas) Matriel - SmartArray 5I Bi-canal 48 Mo 2 (1 SCSI RAID, 1 SCSI) OUI C:\ C:\ E:\ et F:\ (entre 1024Mo et 2048Mo chacun) E:\ E:\ D:\ E:\ Importante 10K et 15K (uniquement pour l'OS) SCSI U320, hotplug 2 Gigabit Auto-ngociation liaison switch sur LAN 100Mb OUI

Modle CPU Frquence Cache L2 Mmoire RAM Espace disque Nombre de disques RAID Contrleur RAID Taille du cache contrleur Nombre de contrleur(s) WriteBack Activ sur le contrleur RAID Emplacement OS Emplacement excutables SQL Server Emplacement PAGEFILE.SYS Emplacement base tempdb Emplacement bases systme Emplacement bases utilisateurs Emplacement journaux logs Fragmentation disques Vitesse des disques Technologie des disques Nombre d'interfaces rseau Vitesse des interfaces rseau Configuration des interfaces rseau Connexion rseau Serveur ddi SQL Server

Le dimensionnement des disques est suffisant pour une utilisation intensive de la base pendant plusieurs mois. En revanche, il ny a aucune redondance sur la base de donnes, seul lOS est en miroir. Le segment de donnes tant en RAID 0 (2 disques), le crash dun disque provoquera une indisponibilit importante. Une solution base de RAID 0+1 est prfrable (performance maximale en I/O, redondance optimale). Pour les journaux de transactions et les sauvegardes, le problme est identique. 10 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

La ventilation des bases utilisateurs, tempdb et journaux de transactions sur lensemble des lecteurs logiques est correcte. Le mode WriteBack est activ sur le contrleur RAID, il est conseille de le mettre OFF (pour viter la prsence de donnes corrompues en cas darrt brutal du serveur). Linterface rseau est configure en mode auto-dtection, il faut la forcer en 100Mbits/Full Duplex. Le mode HyperThreading (1 processeur physique = 2 processeurs logiques) ne permet pas de gagner en performance, cependant il ny a aucun inconvnient le laisser actif.

11 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

5.2.2 Systme dexploitation


Description Installation complte (aucune MAJ partir de NT4) Type d'installation Oui, dernire version (sp4) Service Pack NTFS 5 Systme de fichiers Non Compression active (NTFS) Non Cryptage (NTFS) Non Audit (NTFS) Importante Fragmentation disques Excution des applications en background Oui Non Drivers jour Non Drivers certifis par Microsoft Oui Services non essentiels installs Protocoles rseau non essentiels installs Non

La fragmentation des disques physiques est importante (entre 39% et 50%) et provoque un ralentissement des accs I/O. Le lancement dun dfragmenteur (Diskeeper, composant Windows ou autre) tous les mois permettrait de palier ce problme (larrt du serveur est obligatoire pendant lopration de maintenance). La mise jour (dernire version certifie) des drivers (contrleur RAID, contrleur SCSI, interface rseau, ) permet dobserver dans certains cas des gains de performance, il est conseill de procder ce type dupgrade. Des services non essentiels (MS Search, MAJ Automatique, ) sont activs sur le serveur. Il faut garder uniquement les services essentiels au bon fonctionnement de lapplication.

12 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

6. Audit du dataserver
6.1 Paramtrage du moteur SQL

La configuration du moteur SQL est celle par dfaut. A lheure actuelle, aucune modification nest ncessaire. Il est intressant cependant, en cas de larges exports/imports (via BCP par exemple) daugmenter la taille des paquets rseau (network packet size) afin de rduire le nombre de paquets transitant sur le rseau et donc daugmenter les performances de SQL Server.

13 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

6.2 Paramtrage des bases utilisateurs


BASE1 auto_close auto_create_statistics auto_update_statistics auto_shrink read_only Torn_page_detection compatibility level database auto grow transaction log auto grow BASE2

Loption auto_shrink de BASE1 est coteuse en ressource et provoque des ralentissements, elle doit tre dsactive. De mme pour loption Torn_page_detection de BASE1 et BASE2 (ce flag ne procure aucune scurit contre la corruption de donnes !). 6.3 Analyse des logs Certains problmes sont visibles dans les fichiers de logs du serveur SQL. Les plus importants sont : - les journaux de transactions des bases BASE1, BASE2 et tempdb sont souvent pleins. La mise en place dune troncature automatique ou dune sauvegarde rgulire est conseille. - SQL Server ne peut plus allouer de locks. A lheure actuelle, SQL Server gre automatiquement le nombre de verrous disponibles, il nest pas conseill de modifier ce paramtre (voir 6.1). Par contre une tude approfondie des requtes via le profiler permettra disoler le ou les procdures bloquantes (problme de faible concurrence, etc.)

14 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

7. Audit de la couche applicative


Description Non Oui Oui Non, ou rarement Non Oui Oui Faible Oui/Non Non dbo, appel sans postfixe Non ADO (couche OLEDB) Non Non Non, utilisation de code SQL gnrique

Retour minimum de donnes (SELECT) Utilisation de curseurs Utilisation de SELECT DISTINCT Utilisation de tables temporaires Utilisation de vues Utilisation de procdures stockes Fragmentation des indexes Performance des indexes Utilisation de SET NOCOUNT ON Existence de procdures stockes dbutant par sp_ Propritaire des procdures stockes & appel Utilisation de transactions Mthodes d'appels de l'application Utilisation d'un pool de connexions Utilisation 'propre' des connexions Code optimis pour SQL Server

Une grande partie des codes SQL (requtes ou procdures stockes) retournent plus dinformations que ncessaire (utilisation de SELECT *). Il est conseill de ne slectionner que les colonnes indispensables afin de rduire la charge du moteur SQL. La prsence des curseurs est importante dans lapplication. Ils attaquent souvent des tables de plusieurs dizaines de milliers denregistrements et provoquent des contentions. Ce type dobjet doit tre remplac par des tables temporaires, des tables drives ou des tables mmoires. En effectuant ces remplacements, les gains de performances seront importants. La clause DISTINCT est employe trs souvent, il faut vrifier que son utilisation est rellement essentielle dans les requte/procdures stockes. La densit des indexes est faible sur la quasi-totalit des tables de BASE1 et BASE2, une r-indexation et une rorganisation permettrai dobtenir un gain de performance non ngligeable. Afin de rduire le trafic rseau entre le serveur et ses clients, il est conseill de mettre la directive SET NOCOUNT ON dans chaque procdure stocke. Chaque module accdant la base de donnes doit effectuer imprativement et explicitement une fermeture de connexion. Le code SQL employ dans les procdures stockes/requtes est du type gnrique, lorsque cela est possible, il faut utiliser les instructions propres SQL Server (optimises). 15 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

Le spcialiste des bases de donnes


Conseil / Service / Formation / Infogrance www.capdata.fr

Certaines procdures stockes (voir tableau) ont t clairement identifies comme tant la base de la lenteur des traitements batchs. Leurs rcritures ainsi que la pose judicieuse dindexes permettra de rduire considrablement les temps de traitements.

Procdure stocke PROC_STOCK1 PROC_STOCK2 PROC_STOCK3 PROC_STOCK4

temps exec (ms) Nb lectures Nb critures 234 563 70 346 864 83 628 183 860 35 553 592 34 323 96 813 2 271 014 7 331 530 377 046

16 Ce rapport datant de Janvier 2004 nest pas un rapport type. Chaque rapport tant li au contexte et aux attentes de chaque client et de chaque mission Il est fourni titre dexemple, dans le but de permettre au client dapprcier la qualit et le volume de travail consigns dans un rapport suite 1 jour de conseil

You might also like