Planificateurs de CPU hors ligne

9

Je me suis connecté à un nouveau système client et j'ai exécuté sp_blitz pour voir ce qui tremble. Il rapporte que " CPU Schedulers Offline " qui est un nouveau pour moi.

Certains cœurs de processeur ne sont pas accessibles à SQL Server en raison de masques d'affinité ou de problèmes de licence.

Assez bien, je lance la requête de base

SELECT
    DOS.is_online
,   DOS.status
,   DOS.*
FROM
    sys.dm_os_schedulers AS DOS
ORDER BY
    1;

Cela signale que j'ai réglé 8 sur VISIBLE OFFLINE, 43 sur en ligne. À ma connaissance, personne sur ce client n'aurait intentionnellement défini d'affinité CPU.

J'ai décidé de voir si je pouvais le déboguer. Lorsque je regarde la fenêtre des propriétés, je vois 40 processeurs disponibles et aucun d'entre eux n'est défini pour avoir une affinité.

entrez la description de l'image ici

Pourquoi il y en a 40 montrant encore 43 entrées dans les dm_os_schedulers où is_online est vrai semble également curieux. Les cpu_id des 8 hors ligne sont de 32 à 39.

sys.configurations semble être d'accord avec l'affinité n'étant pas explicitement sur

name                 value  value_in_use  description
affinity I/O mask    0      0             affinity I/O mask
affinity mask        0      0             affinity mask
affinity64 I/O mask  0      0             affinity64 I/O mask
affinity64 mask      0      0             affinity64 mask

Ce n'est pas une édition Enterprise, donc la chose grand-père CAL ne devrait pas être un facteur ici, mais je peux poser cette question demain si besoin est

ProductVersion  ProductLevel  ProductUpdateLevel  Edition
11.0.5058.0     SP2           NULL                Standard Edition (64-bit)

En exécutant les requêtes de diagnostic de Glenn Berry, ce truc pourrait être pertinent

  • Fabricant du système: «Dell Inc.», modèle du système: «PowerEdge R720».
  • Processeur Intel (R) Xeon (R) E5-2680 v2 à 2,80 GHz

Alors, qu'est-ce qui donne? Suis-je virtualisé et je ne le sais pas? Existe-t-il un autre endroit que je devrais rechercher pour déterminer pourquoi SQL Server ne peut pas utiliser certains processeurs?

Articles de référence

Une liste d'articles que j'ai lus mais que je n'ai clairement pas compris suffisamment pour répondre à ma propre question

billinkc
la source

Réponses:

13

Ce que vous voyez est parfaitement logique compte tenu des informations disponibles.

SQL Server 2012 Standard Edition est limité au moindre de 4 sockets ou 16 cœurs physiques.

Puisque vous avez 40 cœurs (probablement 2 sockets 10 cœurs + HT), 16 cœurs physiques vont être 32 cœurs logiques (à cause de HT). Si vous en avez 40 au total, j'ATTENDRAI que 8 soient VISIBLES HORS LIGNE en raison de la licence.

Fonctionnalités prises en charge par les éditions de SQL Server 2012 - Limites d'échelle inter-boîtes

Modifier: Informations supplémentaires

Selon le système d'exploitation impliqué, les planifications peuvent être liées à des processeurs qui effectuent également une configuration de mémoire NUMA déséquilibrée pour votre système. Bien qu'il soit hautement improbable que cela vous cause des problèmes (car il n'a pas été remarqué que tous les processeurs étaient utilisés en premier lieu), cela pourrait avoir un impact beaucoup plus élevé sur un système très utilisé où l'accès à la mémoire étrangère peut vraiment additionner.

Sean Gallardy
la source