Académique Documents
Professionnel Documents
Culture Documents
Tests et mesures permettant de dterminer l'avantage aligner les partitions pour un environnement Microsoft SQL Server. ------
Alignement de partitions pour amlioration des performances de MS-SQL Server par David Barbarin
I - Introduction..............................................................................................................................................................3 II - Disque dur : quelques concepts............................................................................................................................ 3 III - Partitionnement de disque et 1er secteur............................................................................................................ 4 IV - Raid - stripping size et chunck.............................................................................................................................4 V - Problmatique de l'alignement des partitions........................................................................................................4 V-A - 1er exemple.................................................................................................................................................. 4 V-B - 2me exemple.............................................................................................................................................. 5 VI - Les utilitaires de partitionnement et alignement...................................................................................................6 VII - Tests et contrle du gain de performance obtenu.............................................................................................. 7 VII-A - Environnement du test................................................................................................................................8 VII-B - Rsultat des tests....................................................................................................................................... 8 VII-B-1 - Lectures et critures alatoires avec une taille de bloc de 8Ko........................................................ 8 VII-B-2 - Lectures et critures squentielles avec une taille de bloc allant de 8ko 1024Ko.......................... 9 VIII - Conclusion.......................................................................................................................................................... 9 IX - Sources................................................................................................................................................................. 9 IX-A - Webographie................................................................................................................................................ 9 IX-B - Bibliographie................................................................................................................................................ 9 X - Remerciements.................................................................................................................................................... 10
-2Copyright 2009 - mikedavem. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://mikedavem.developpez.com/sqlserver/tutoriels/architecture/
Alignement de partitions pour amlioration des performances de MS-SQL Server par David Barbarin
I - Introduction
En matire de SGBDR les oprations les plus coteuses sont celles ralises par les accs physiques aux disques. Le fractionnement et la structuration des emplacements physiques des disques est d'une importance capitale en terme de performance et peut diviser les temps d'accs aux donnes par trois. Voici quelques explications sur cette problmatique et la faon d' y remdier. Imaginez que vous tes bibliothcaire et qu'une partie de votre tche consiste ranger des livres en les classant. Aujourd'hui vous devez ranger 2 collections de livres dans une partie de la bibliothque. Une collection, une fois range, remplit la totalit de l'tagre de votre bibliothque. Vous les rangez donc sur leurs tagres respectives. Si vous devez rcuprer une collection entire de livres, il est facile pour vous de le faire : il suffit de reprer l'tagre concerne et de prendre les livres. Maintenant, si votre directeur tient absolument ranger ses livres au dbut de cette 1re tagre les collections de livres qui taient parfaitement rangs se voient maintenant dcales et disperses sur 2 tagres la fois car ceux-ci, rappelons-le, prennent la place d'une tagre entire. Dans ce cas, que ce soit pour les ranger ou les rcuprer, il vous faudra videmment plus de travail. Remplacez les collections de livres par les donnes sur vos disques et les livres dcals suite la demande du directeur par un dcalage caus par le systme d'exploitation et vous obtiendrez la problmatique d'alignement des partitions et des problmes de performances d'entres / sorties engendrs.
Un disque dur est une mmoire de masse magntique compose d'un ou plusieurs plateaux. Chaque plateau est compos de pistes. Les pistes situes un mme rayon forment un cylindre. Chaque piste est dlimite en secteurs ou blocs qui contiendront les donnes. Un secteur fait 512 octets. Un disque dur possde galement une ou plusieurs ttes de lecture pour pouvoir lire et crire les donnes. Il y a autant de ttes que de surfaces lire (en fonction des diffrents plateaux).
-3Copyright 2009 - mikedavem. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://mikedavem.developpez.com/sqlserver/tutoriels/architecture/
Alignement de partitions pour amlioration des performances de MS-SQL Server par David Barbarin
-4Copyright 2009 - mikedavem. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://mikedavem.developpez.com/sqlserver/tutoriels/architecture/
Alignement de partitions pour amlioration des performances de MS-SQL Server par David Barbarin
Nous voyons bien que pour lire le 8me cluster il y aura 2 entres / sorties qui seront effectus pour une partition non aligne contre 1 seule pour une partition aligne. Pour arriver ce rsultat il suffit d'allouer un secteur supplmentaire au dbut du disque.
-5Copyright 2009 - mikedavem. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://mikedavem.developpez.com/sqlserver/tutoriels/architecture/
Alignement de partitions pour amlioration des performances de MS-SQL Server par David Barbarin
Dans ce 2me cas nous observons galement les avantages d'aligner correctement les partitions en rservant cette fois-ci les 128 premiers secteurs soit 128 x 512 = 64Ko. Comme vous pouvez le constater, la taille d'alignement des partitions se fait en fonction de la taille d'allocation des clusters lorsque vous partitionnez vos disques.
G:
Dans l'exemple ci-dessus, nous avons cr une partition primaire sur le disque 3 avec un dcalage ou offset de 64Ko. Nous avons ensuite rserv la lettre G et format notre partition en NTFS avec une taille de cluster 64Ko.
-6Copyright 2009 - mikedavem. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://mikedavem.developpez.com/sqlserver/tutoriels/architecture/
Alignement de partitions pour amlioration des performances de MS-SQL Server par David Barbarin
Visualisons prsent l'offset cr. Pour cela nous n'utiliserons pas diskpart car celui-ci se rvle imprcis la lecture de l'offset qui s'affiche en Ko. Pour rappel, Windows alloue les 63 premiers secteurs du disque par dfaut. Les calculs suivants permettent de vrifier nos propos: Par dfaut : 63 * 512 octects = 32256 octets = 31.5 Ko Avec alignement : 64 * 512 octets = 32768 octects = 32 Ko
Diskpart dans les 2 cas affichera 32 Ko ! Soyez donc prudent la lecture de l'offset avec cet utilitaire. Nous prendrons wmic, autre utilitaire fourni par Windows permettant de visualiser l'offset de la partition avec plus de prcision :
C :> wmic partition get BlockSize, StartingOffset, Name, Index BlockSize 512 512 512 Index 0 0 0 Name Disque n 0, partition n 0 Disque n 1, partition n 0 Disque n 2, partition n 0 StartingOffset 32256 32256 65536
Nous voyons donc la partition cre prcdemment ainsi que l'offset de 65536 octets soit 64Ko. Notez au passage le dsalignement des disques n0 et n1 avec un offset de 32256 octets par dfaut soit 31.5Ko et 63 secteurs et non 32Ko et 64 secteurs !
Nous testerons pour chaque partition (non aligne et aligne) : Pour les I/O de alatoires : Lecture et criture avec une taille de bloc 8Ko Pour les I/O squentielles : Lecture et criture avec les tailles de bloc de 8, 64, 128, 256 et 1024Ko
-7Copyright 2009 - mikedavem. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://mikedavem.developpez.com/sqlserver/tutoriels/architecture/
Alignement de partitions pour amlioration des performances de MS-SQL Server par David Barbarin
VII-B - Rsultat des tests VII-B-1 - Lectures et critures alatoires avec une taille de bloc de 8Ko.
Les tests montrent une diffrence notable pour lectures (21%) mais pas de grande diffrence en criture (1,5%). Ce test peut tre difficilement interprtable. Pourquoi n'observe t'on pas tellement de diffrence en criture ? Nous avons une taille de cluster de 8Ko, une largeur de bande de 64Ko et des critures alatoires. La probabilit d'crire dans la zone critique, c'est--dire celle qui divisera un bloc en 2 parties reste faible, que ce soit sur une partition aligne ou pas.
-8Copyright 2009 - mikedavem. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://mikedavem.developpez.com/sqlserver/tutoriels/architecture/
Alignement de partitions pour amlioration des performances de MS-SQL Server par David Barbarin
VII-B-2 - Lectures et critures squentielles avec une taille de bloc allant de 8ko 1024Ko
Les tests montrent une diffrence notable aussi bien en criture (13%) qu'en lecture (18%). Sur des lectures et critures squentielles la probabilit d'crire sur la zone critique est beaucoup plus leve dans ce cas. L'alignement des partitions y joue tout son rle.
VIII - Conclusion
L'alignement des partitions reste une des nombreuses techniques d'optimisations existantes telles que la mise en place de technologies RAID, l'ajout de disques rapides, de caches disques, de bus de donnes plus rapides etc. Corrle un paramtrage adquat de taille de clusters et de largeur de bande (stripe unit size) aux niveaux de vos configurations RAID, vous devriez tirer parti des avantages d'une technique assez simple mettre en uvre avant mme d'avoir install votre serveur SQL. Bon alignement !!
IX-B - Bibliographie
Outils de partitionnement
-9Copyright 2009 - mikedavem. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://mikedavem.developpez.com/sqlserver/tutoriels/architecture/
Alignement de partitions pour amlioration des performances de MS-SQL Server par David Barbarin
X - Remerciements
Je remercie SQLPro et Fadace pour la relecture attentive de cet article.
- 10 Copyright 2009 - mikedavem. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://mikedavem.developpez.com/sqlserver/tutoriels/architecture/