VMware : Limite vCPU (vSocket) pour SQL Server Standard

VMware : Limite vCPU (vSocket) pour SQL Server Standard


Licensing SQL Server sur l’environnement VMware et l’un des sujets le plus complexes, ainsi nous partageons avec vous dans cet article notre expérience avec une VM SQLStandard et l’histoire de la limitation des vCPU. 

Nous nous sommes basés sur la VM ci-dessous dont les principales caractéristiques sont :
– Guest OS : Microsoft Windows Server 2012
– vCPU : 4
– RAM : 4 GB
– Version SQL : Microsoft SQL Server Standard 2014

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h18_23.png

Configuration CPU
La VM dispose de 4 vCPU.
Comme le recommande VMware, les vCPU doivent dans la mesure du possible être configurés en tant que “Virtual Sockets”, ce qui est le cas ici.

Notez que configuré la VM avec 4 virtual sockets ou 4 core per socket ne changera strictement rien d’un point de vue scheduler ESXi. En effet, le kernel tentera d’allouer 4 threads à la VM dans tous les cas. La différence entre les 2 configurations est essentiellement axée sur la topologie Numa et vNuma (voir KB :ici ).

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h18_33.png

Au sein de l’OS on voit bien que la VM dispose de ses 4 vSockets qu’elle considère comme 4 processeurs physiques distincts.

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h19_03.png

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h19_09.png

 

Paramétrage Processeur SQL
On voit ici que le moteur SQL utilise bien les 4 CPU alloués à la VM.

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h19_26.png


Upgrade HotAdd vCPU : 4 > 8
Comme le recommande VMware, nous augmentons les virtual sockets en les passants à 8.

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h19_47.png


La VM a bien pris en compte l’ajout à chaud des vCPUs : 8 Sockets / 8 Virtual processors

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h20_33.png

 

Paramétrage Processeur SQL
Essayons désormais de cocher les 4 nouveaux vCPU ajoutés afin que le moteur SQL puisse bénéficier des 8 vCPUs alloués à la VM.
On enregistre en cliquant sur OK.

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h20_57.png


Erreur
Le moteur SQL ne semble pas vouloir accepter la configuration avec les 8 vCPU.
En lisant le message, on comprend clairement que le problème est dû à une histoire de Licensing : “the number of CPUs supported or licensed of SQL Server”.

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h21_10.png

 

Microsoft Technet Lien : MSDN

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-16_14h37_38.png

Changement vSocket – Core per Socket (VM éteinte)
Dans notre cas, on est obligé par contrainte de Licensing de changer la configuration CPU de la VM. (Prévoir une coupure de la VM).
En effet, nous devons ajuster les virtual sockets pour que la VM et le moteur SQL puissent bénéficier des 8 vCPUs.
Dans notre cas, on décide tout simplement de basculer les 8 vSockets en 8 core per socket.

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h21_37.png

Après redémarrage, la VM dispose toujours de ses 8 vCPUs, cependant cell-ci pense désormais avoir 1 CPU physique avec 8 coeurs.

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h22_10.png

Paramétrage Processeur SQL
On refait la même manipulation que tout à l’heure : on coche tous les CPU.
On applique en cliquant sur OK.

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h22_49.png

Vérification Affinité Processeur
A l’aide du Task Manager, on peut vérifier que le service sqlserver.exe utilise bien tous les CPU alloués à la VM.

C:\Users\igor\Desktop\vinception\Screenpresso\2016-05-15_20h23_37.png

1 thought on “VMware : Limite vCPU (vSocket) pour SQL Server Standard”

Leave a Reply

Your email address will not be published. Required fields are marked *