L’alignement de partition

L’alignement des partitions est un facteur important de performance souvent négligé. Il y a peu de temps, lors d’un audit d’un serveur SQL, je me suis aperçu que les partitions de serveur n’étaient pas alignées. Heureusement que Windows 2008 le réalise automatiquement (à 1024 k). Il est difficile de rattraper le coup pour la partition système, mais il convient absolument de le faire pour une partition de données. Comme les pistes ne sont pas alignées avec les partitions, une opération d’E/S peut s’étendre sur deux pistes, ce qui entraîne une altération des performances, jusqu’à 25% de perte.

Chaque disque contient un MBR (Master Boot Record) de 63 secteurs, et le donnée commence au secteur 64. La plupart des disques disposent  de 512 bytes * 63 secteurs = 32256 soit 31.5 ko alors qu’une partition alignée doit être de 512 * 64 = 32768 soit 32 k. Dans un stripe size de 256k d’une pile RAID, un mauvais alignement générera beaucoup plus opérations pour une seule E/S.

Pour y remédier, il convient d’utiliser l’utilitaire diskpart pour les disques basiques uniquement.
diskpart
list disk
select disk 1
clean
create partition primary align=1024
format quick fs=ntfs ou format fs=ntfs unit=64K label= »MyFastDisk »
active

Le script VBS ci-dessous permet de tester si vos  partitions sont alignées.


strComputer = "." ' Local Computer

SET objWMIService = GETOBJECT("winmgmts:\\" & strComputer & "\root\CIMV2")

SET colItems = objWMIService.ExecQuery("SELECT * FROM Win32_DiskPartition",,48)

FOR EACH objItem in colItems
Wscript.Echo "Disk: " & objItem.DiskIndex & " Partition: " & objItem.Index & " StartingOffset: " & objItem.StartingOffset/1024 & "KB"
NEXT

Un excellent document de NetApp est disponible ici et fait largement le tour de la question.

Partagez si ça vous plait !
0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest

0 Commentaires
Commentaires en ligne
Afficher tous les commentaires
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x