IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

MSSQL 2012 Standard et HyperThreading


Sujet :

Administration SQL Server

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 7
    Points
    7
    Par défaut MSSQL 2012 Standard et HyperThreading
    Bonjour à tous,

    une petite question me trotte dans la tête et je n'arrive pas vraiment à trouver de réponse (ou je ne sais pas comment faire)

    J'utilise une version standard de MSSQL 2012 sur un serveur 4 CPU 8-cores soit 64 cores avec l'hyperthreading.
    L'edition standard n'adressant que 16 cores (ou 32 HT), je me retrouve à n'utiliser que la moitié des cpu.

    Ma question est donc la suivante :

    Si en activant le HT et en jouant sur le masque d'affinité pour utiliser 32 cores (un sur deux) de façon à utiliser un core logique par core réel, le comportement sera-t-il proche d'une utilisation de 32 cores réels sans HT ?

    Merci de votre réponse.

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Bonjour,

    Lorsque vous chargez 32 voitures de une personne sur une route de 8 voies est ce que celle ci peuvent passer en même temps sur chaque voie ?

    Pourquoi ne pas charger chaques voiture de 4 personnes sur 8 voies ?

    C'est un peu l'image que vous devez garder en tete...

    SQL server travail en priorité sur les coeurs physique et non sur les coeurs logique.

    En activant l'HT vous pouvez même avoir des dégradations de performances... liés au fait que vous utilisez toutes les ressources dispo et vous allez même chercher a les saturer.

    Un peu d'aide dans la démarche de votre questionnement :

    http://www.dbdelta.com/sql-server-and-hyper-threading/

    http://serverfault.com/questions/194...server-install

    Julien

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour julien,

    Merci pour votre réponse.
    Mais celle-ci ne semble par correspondre à ma question.

    Mon interrogation se porte sur le comportement d'un thread dans un environnement HT.

    Je ne peux utiliser que 16 cores physiques en MSSQL Standard sur les 32 que comporte le serveur.
    Avec le HT activé, je peux utiliser 32 cores logiques en MSSQL Standard sur les 64 présentés par le serveur.

    Ma question est donc : En activant le HT, j'ai ainsi la possibilité (via l'affinity mask) d'utiliser un core logique pour chaque paire présentée pour un cœur physique. De cette façon, vais-je vraiment exploiter la totalité de la puissance de chaque core physique ou existe-t-il une limitation ?

    Pour expliciter ma question :

    Ex : En adressant uniquement les Cores Logiques paires, vais-je utiliser les 32 cores physiques à plein ?
    CP0 = CL0 + CL1
    CP1 = CL2 + CL3
    CP3 = CL4 + CL5
    ......
    CP31 = CL60 + CL61
    CP32 = CL62 + CL63

  4. #4
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 543
    Points
    10 543
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Sauf erreur de ma part, la réponse est non, cela ne marchera pas.

    Pourquoi ? Car SQL Server regarde les deux limites. Ce n'est pas l'une ou l'autre, c'est les deux.
    Si tu essaies d'utiliser 32 cores physiques en jouant sur les affinités, tu vas te retrouver au mieux avec une instance qui n'utilisera que 16 cores physiques.

    Si tu veux pouvoir utiliser toute la puissance de ton serveur, tu peux installer une deuxième instance de SQL Server.

  5. #5
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Bonjour,

    Pour ma part, je dirais non également en standard nous sommes a 16 coeurs max, SQL Server va detecter les 32 coeurs et n'en utilisera que 16.

  6. #6
    Membre éclairé Avatar de Bernardos
    Homme Profil pro
    Consultant Senior dba sql server & Microsoft Business Intelligence
    Inscrit en
    Avril 2008
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Senior dba sql server & Microsoft Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 332
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    Pour ma part, je dirais non également en standard nous sommes a 16 coeurs max, SQL Server va detecter les 32 coeurs et n'en utilisera que 16.
    Mais comme dit François Dorin, tu peux faire 2 instances utilisant chacune 16 coeurs.
    Par contre, moi perso je ne suis pas pour l'utilisation de l'hyperthreading pour des serveurs hébergeant des instances SQL server.
    Cordialement,

  7. #7
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Sur un environnement physique OSE il est certain que SQL Server ne va utiliser que 16 cœurs sur les 32 disponibles comme précisé par dorinf et julien94320
    D'un point de vue commercial, la gymnastique au travers des masques d'affinités ne fonctionnent pas (même dans le cas où on se retrouve avec plus de processeurs que prévu et qu'on veut limiter le nombre de processeurs utilisé par SQL Server).

    Par contre, moi perso je ne suis pas pour l'utilisation de l'hyperthreading pour des serveurs hébergeant des instances SQL server.
    Ca a toujours été un débat l'utilisation du HT et ca dépend beaucoup de l'architecture serveur (CPU) et du type de charge de travail utilisé.
    En principe Microsoft recommande l'utilisation du HT dans des environnements purement OLTP et je dois dire que cela marche plutôt bien chez mes clients qui sont dans ce cas. Avec des charges de travail un peu plus mixte ou avec beaucoup de requêtes parallèles on peut en effet se retrouver à avoir des régressions de performance et la désactivation du HT est plutôt bénéfique. Mais là à part effectuer des tests sérieux pour le vérifier difficile de dire à l'avance si HT ou pas HT.

    ++

Discussions similaires

  1. [2012] Processeurs sur MSSQL 2012
    Par DBA_OCP dans le forum Administration
    Réponses: 2
    Dernier message: 13/04/2015, 17h12
  2. [XE7-MsSql 2012] Probleme de dans dans windows 8
    Par mario9 dans le forum Langage
    Réponses: 6
    Dernier message: 16/03/2015, 15h22
  3. [2012] Base MSSQL 2012 vers sqlite / sql ce
    Par djchou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/09/2014, 14h49
  4. Downgrade base MSSQL 2012 -> MSSQL 2008
    Par feralp dans le forum Administration
    Réponses: 1
    Dernier message: 20/03/2013, 21h18
  5. Connexion a serveur MSSQL 2012 express
    Par mario9 dans le forum Administration
    Réponses: 2
    Dernier message: 13/12/2012, 12h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo