web-dev-qa-db-fra.com

Un nœud numa utilise toute la mémoire

Je gère un serveur standard SQL 2012 SP3 CU9 avec 2 CPU chacun ayant 4 cœurs (hyperthreading activé). J'ai 384 gb RAM= (Oui, je sais que je ne peux pas l'utiliser tout dans SQL Standard). Les pages de verrouillage en mémoire sont activées.

Mon problème est que l'un des nœuds de la CPU semble allouer toute la mémoire en laissant un peu pour le nœud CPU secondé, ce qui entraîne un des nœuds très bas et l'autre un très faible.

Ai-je configuré quelque chose de mal?

enter image description here

enter image description here

3
Claus Bruun

En ce qui concerne l'utilisation de CPU Core , l'édition standard commence par le premier nœud Numa. Chaque fois qu'il épuise la licence disponible (2016 & Newer, il s'agit de 4 sockets ou de 24 noyaux, selon la première éventualité - 2014 et avant, il s'agit de 4 sockets ou de 16 noyaux, selon la première éventualité), alors il n'utilise pas les cœurs restants.

Voici la partie délicate: si elle épuise une licence et que les nœuds NUMA entiers restent avec des nœuds nuls activés, alors que tout le nœud NUMA est hors ligne - inutilisable pour le travail ou la mémoire de la CPU. J'ai blogué à ce sujet dans plus de détails ici.

Vous avez demandé à propos de la mémoire , et j'ai un hunch (bien que je n'ai pas de serveur à portée de main pour le prouver) qu'il pourrait fonctionner de la même manière. Si le premier nœud Numa contient 128 Go ou plus de mémoire, cela pourrait être la grande majorité de la mémoire utilisée.

C'est un cas de bord très rare, et je ne m'attendrais pas à voir des conseils de Microsoft pour confirmer ou nier cela. (Ce n'est certainement pas quelque chose qu'ils testaient dans le cadre de la livraison traditionnelle - si vous avez 384 Go de RAM, vous voulez utiliser l'édition d'entreprise à la place.)

J'étends pour réfléchir à la manière dont vous pourriez désactiver ce comportement, autrement que de jouer avec Numa doux .

2
Brent Ozar