Je suis en milieu d’implantation d'un système Dynamics AX 2012 R3 pour un de nos clients. On m’a récemment remis une machine virtuelle pour le serveur SQL. Lorsque je reçois un serveur SQL, je vérifie toujours la configuration des disques et j’effectue des tests de performance.
Je m’aperçois que les disques sont configurés avec des blocs de
4KB. Il est clair que Microsoft recommande de formater les disques en 64KB
pour des raisons de performance.
Avant d’envoyer un courriel à mon client pour lui dire que
les disques doivent être configurés avec des blocs de 64KB, je décide de faire des tests de
performance afin de démontrer qu’il y a un gain de performance entre 4KB et 64KB.
À ma grande surprise, les tests n'indiquent AUCUN gain de performances. Voici mes tests :
64K = Lecture de blob de 64KB
1T, 4T, 8T = Nombre de thread
O32 = Queue Depth de 32
W0, W25 = Pourcentage en ecriture
Lors de mes tests, je désactive la cache logicielle et matérielle. La lecture et écriture est faite de façon aléatoire (non séquentielles)
Voici le tableau des résultats :
Disque avec taille d'unité d'allocation de 4KB
Disque avec taille d'unité d'allocation de 64KB
Je m’attendais à voir plus d'IOPs et une latence moins élever pour le disque configuré avec des blocs de 64 KB. Tout simplement parce que je me disais qu'il est plus rapide de lire 64 KB d'information lorsque le système doit lire seulement un bloc 64 KB. En revanche, lire 64 KB d’information lorsque le disque est formater avec des blocs de 4 KB requiert la lecture de 16 blocs au disque, donc plus d'opérations physiques (mouvement des têtes) et par conséquent une plus longue latence.
Donc, pourquoi les chiffres ne démontrent-ils aucune différence entre 4 KB et 64 KB ? J’en suis venu à la conclusion logique que les performances sont les mêmes puisque c'est un disque virtuel. Le disque est placé dans un VMFS formater avec des blocs de 1 MB. Donc, il y a très peu d'impact au niveau des disques physiques.
Ainsi, j'imagine que les performances sont meilleures seulement lorsque les disques sont RAW.
Toutefois, ma question est : pourquoi Microsoft recommande de formater les disques en 64 KB pour SQL même sur les machines virtuelles ? Sûrement parce que ça ne fait pas de mal.