Limites de capacité de calcul des éditions SQL Server

S’applique à :SQL Server

Cet article traite des limites de capacité de calcul des éditions de SQL Server et de leurs différences dans les environnements physiques et virtualisés avec des processeurs multithreading simultanés (SMT). Sur les processeurs Intel, SMT est appelé Hyper-Threading.

Diagram showing the mappings to compute capacity limits.

Ce tableau décrit les notations dans le diagramme précédent :

Valeur Description
0..1 Zéro ou un
1 Un seul
1..* Un ou plus
0..* Zéro ou plus
1..2 Une ou deux

Pour approfondir :

  • Une machine virtuelle compte un ou plusieurs processeurs virtuels.
  • Un ou plusieurs processeurs virtuels sont alloués à un seul ordinateur virtuel.
  • Zéro ou un processeur virtuel est mappé à zéro ou un processeur logique. Quand le mappage des processeurs virtuels à un processeur logique est :
    • Un à zéro : il représente un processeur logique indépendant non utilisé par les systèmes d’exploitation invités.
    • Un à plusieurs : il représente une survalidation (overcommit).
    • Zéro à plusieurs : il représente l’absence de machine virtuelle sur le système hôte. Donc, les machines virtuelles n’utilisent pas de processeurs logiques.
  • Un socket est mappé à zéro ou plusieurs noyaux. Quand le mappage de socket au cœur est :
    • Un à zéro : il représente un socket vide. Aucun processeur n’est installé.
    • Un à un : il représente un processeur monocœur installé dans le socket. Ce mappage est rare de nos jours.
    • Un à plusieurs : il représente un processeur multicœur installé dans le socket. Les valeurs sont habituellement 2, 4 et 8.
  • Un noyau est mappé à un ou deux processeurs logiques. Quand le mappage des cœurs à un processeur logique est :
    • Un à un : SMT est désactivé.
    • Un à deux : SMT est activé.

Les définitions suivantes s'appliquent aux termes utilisés dans cet article :

  • Un thread ou un processeur logique est un moteur de calcul logique du point de vue de SQL Server, du système d'exploitation, d’une application ou d’un pilote.

  • Un cœur est une unité de processeur. Il peut être constitué d’un ou plusieurs processeurs logiques.

  • Un processeur physique peut comprendre un ou plusieurs noyaux. Un processeur physique est identique à un package de processeurs ou à un socket.

Les systèmes avec plus d’un processeur physique ou les systèmes avec des processeurs physiques qui ont plusieurs noyaux et/ou SMT permettent au système d’exploitation d’exécuter plusieurs tâches simultanément. Chaque thread d'exécution apparaît comme un processeur logique. Par exemple, si votre ordinateur a deux processeurs à quatre cœurs avec le SMT activé et deux conversations par cœur, vous avez 16 processeurs logiques : 2 processeurs x 4 cœurs par processeur x 2 conversations par cœur. Il est intéressant de noter que :

  • La capacité de calcul d’un processeur logique à partir d’une seule conversation d’un cœur SMT est inférieure à la capacité de calcul d’un processeur logique à partir de ce même cœur avec SMT désactivé.

  • La capacité de calcul des deux processeurs logiques dans le cœur SMT est supérieure à la capacité de calcul du même cœur avec le SMT désactivé.

Chaque édition de SQL Server a deux limites de capacité de calcul :

  • Un nombre maximal de sockets (ou processeurs physiques ou packages de processeurs)

  • Un nombre maximal de cœurs comme indiqué par le système d’exploitation

Ces limites s'appliquent à une seule instance de SQL Server. Elles représentent la capacité maximale de calcul qu’une seule instance utilise. Elles ne restreignent pas le serveur sur lequel l’instance peut être déployée. En fait, le déploiement de plusieurs instances de SQL Server sur le même serveur physique est un moyen efficace d’utiliser la capacité de calcul d’un serveur physique avec plus de sockets et/ou de cœurs que les limites de capacité n’autorisent.

Le tableau suivant présente les limites de capacité de calcul pour une instance unique de chaque édition de SQL Server:

Édition deSQL Server Capacité maximale de calcul pour une instance unique (Moteur de base de données SQL Server) Capacité maximale de calcul pour une instance unique (AS,RS)
Édition Entreprise : Licence par cœur 1 Maximum du système d'exploitation Maximum du système d'exploitation
Développeur Maximum du système d'exploitation Maximum du système d'exploitation
standard Limité à moins de 4 sockets ou 24 cœurs Limité à moins de 4 sockets ou 24 cœurs
Express Limité à moins de 1 socket ou 4 cœurs Limité à moins de 1 socket ou 4 cœurs

1 Édition Entreprise avec Server + licences d’accès client (CAL) + gestion des licences limitées à 20 cœurs par instance de SQL Server. (Cette gestion des licences n’est pas disponible pour les nouveaux accords.) Il n’existe aucune limite dans le mode de licence Serveur selon le nombre de cœurs.

Remarque

SQL Server limite le nombre de processeurs logiques par nœud NUMA à 64. Sur les serveurs avec plus de 64 processeurs logiques par nœud NUMA, vous pouvez utiliser une configuration bios/microprogramme pour modifier le nombre de nœuds NUMA par socket physique présenté au système d’exploitation, pour limiter à un maximum de 64 processeurs logiques.

Dans un environnement virtualisé, la limite de capacité de calcul est basée sur le nombre de processeurs logiques et non sur le nombre de cœurs. La raison est que l’architecture de processeurs n’est pas visible aux applications invitées.

Par exemple, un serveur avec quatre sockets comprenant des processeurs quadruple cœur et autorisant l’activation de deux conversations SMT par cœur, contient 32 processeurs logiques avec SMT activé. Mais il contient seulement 16 processeurs logiques avec SMT désactivé. Ces processeurs logiques peuvent être mappés aux machines virtuelles sur le serveur. La charge de calcul des machines virtuelles sur ce processeur logique est mappée à un thread d’exécution sur le processeur physique du serveur hôte.

Vous pouvez désactiver SMT quand les performances de chaque processeur virtuel sont importantes. Vous pouvez activer ou désactiver lSMT sur le processeur à l’aide d’un paramètre du BIOS pendant l’installation de celui-ci, mais il s’agit en général d’une opération couvrant l’étendue du serveur qui aura un impact sur toutes les charges de travail qui s’exécutent sur le serveur. Vous pourriez envisager de séparer les charges de travail qui fonctionnent dans des environnements virtualisés des charges de travail qui bénéficieraient de l’augmentation du rendement des SMT dans un environnement de système d’exploitation physique.

Obtenir de l’aide

Contribuer à la documentation SQL

Saviez-vous que vous pouvez modifier le contenu SQL vous-même ? Dans ce cas, non seulement vous nous aidez à améliorer notre documentation, mais vous êtes également cité en tant que contributeur à la page.

Pour plus d’informations, consultez Guide pratique pour contribuer à la documentation SQL Server