SQL Server 2016 : Maintenance des progiciels tiers

Comprendre NUMA

Testez gratuitement nos 1324 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez préciser ce qu'est l'architecture NUMA et comment elle peut impacter les performances dans SQL Server.
03:52

Transcription

Il y a fort à parier que si vous êtes sur une machine moderne, et peut-être vous avez des problèmes de performance avec votre progiciel, peut-être avez songé à augmenter la capacité de la machine, peut-être que c'est déjà fait, peut-être avez-vous un certain nombre de processeur. Le nombre de processeur influe quand même sur les performances de SQL Server, il va bien entendu pouvoir exécuter plusieurs requêtes en même temps, une sur chaque processeur. Mais pour des requêtes plus volumineuses, plus lourdes, eh bien ils pourraient exécuter une requête sur plusieurs processeurs en même temps, c'est ce qu'on appelle le « parallélisme ». J'aimerais vous rendre attentif à une ou deux problématiques liées au parallélisme, mais avant, une petite parenthèse pour vous expliquer ce que veut dire NUMA, qui est une architecture matérielle assez commune sur des machines qui ont beaucoup de processeurs. Historiquement, comme vous le voyez ici à gauche, les machines qui avaient plusieurs processeurs étaient dans une architecture qu'on appelle SMP, donc une architecture parallèle. Ici, j'ai un certain nombre de processeurs, et ils vont devoir travailler avec de la RAM les processeurs travaillent en permanence avec la mémoire vive pour y placer leur registre, etc. Pour passer des informations entre les processeurs et la RAM, il y a un bus de données. Dans l'architecture SMP, il y a un seul bus, pour que tous les processeurs puissent accéder à la RAM. Comme c'est assez clairement indiqué sur cette représentation, on peut dire qu'ici on a vraiment un goulet d'étranglement possible, le bus n'est pas très très rapide, la RAM est rapide, les processeurs sont rapides mais le bus peut très très vite être le point faible de ce système. J'ai mis ici un petit rectangle vert pour dire que on avait des « scheduler » internes à SQL Server par processeur, ça ce n’est pas très important, mais c'est surtout cette partie bus qui nous intéresse. Donc cette problématique étant de plus en plus prégnante, les constructions de matériels ont prévus une architecture appelée NUMA. NUMA, ça veut dire « Non Uniform Memory Access », « accès non uniforme à la mémoire ». De quoi s’agit-il? Vous le voyez ici à droite, si on a un certains nombre de processeurs, ce que on peut faire c'est les regrouper dans des nœuds. Ici, j'ai quatre processeurs dans le « Nœud 0 », quatre processeurs dans le « Nœud 1 ». Et à ce moment-là, dédier un bus de données par nœuds, qu'on appelle des « nœuds NUMA » et dédier une partie de la RAM à ce bus, ce qui fait qu'on sépare comme si on avait plusieurs machines finalement avec chacune sa RAM, chacune son bus, chacune ses processeurs, ce qui permet de diminuer bien entendu la charge sur chaque bus, et d'améliorer les performances. Pour que ça marche, il faut que les applications soient « NUMA aware », dans le sens où si elles doivent gérer des threads sur plusieurs processeurs, il est bon qu'elles travaillent uniquement avec un nœud pour faire du parallélisme, parce que, eh bien on peut avoir un problème si on travaille avec différents nœuds et on doit échanger des données, parce que comme vous le voyez la RAM ici est séparée. Elle est devenue étrangère. Ici par exemple, cette RAM est étrangère au « Nœud 0 », et donc ça coûte plus cher, en termes d'accès, c'est plus long d'accéder à de la RAM étrangère. Donc si vous avez une architecture NUMA et que SQL Server fait du parallélisme, eh bien il faut éviter qu'une requête comme ici se distribue en parallélisme sur plusieurs nœuds NUMA, ce qui va lui coûter plus cher pour accéder ensuite en synchronisant ses données à de la mémoire étrangère. Cette parenthèses théorique étant refermée, on va voir maintenant quel est l'impact dans SQL Server » et comment gérer un peu mieux ça ?

SQL Server 2016 : Maintenance des progiciels tiers

Exploitez les fonctionnalités de SQL Server afin de diminuer les problèmes, et améliorer les performances des progiciels. Faites face à ce problème très souvent rencontré !

1h16 (15 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :4 août 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !