Problèmes de performances ou de mémoire lorsque vous exécutez SQL Server 2008 ou SQL Server 2005 sur des systèmes qui ont plus de 64 processeurs logiques

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous installez Microsoft SQL Server 2008 ou Microsoft SQL Server 2005.

  • L'ordinateur sur lequel SQL Server est installé a plus de 64 processeurs logiques.

  • L'accès à la mémoire non uniforme (NUMA) est activé.

Dans ce scénario, vous rencontrez des problèmes qui affectent les performances ou l'utilisation de la mémoire. Par exemple, vous rencontrez un ou plusieurs des problèmes suivants :

  • Un message d'erreur qui ressemble à l'un des éléments suivants peut être enregistré dans le journal d'erreur du serveur SQL :

    Message d’erreur 1

    2013-07-17 05:10:31.02 Server IO Completion Listener (0x27a0) Worker 0x00000000516A41A0 semble ne pas céder sur le nœud 3. Approx CPU Utilisé: noyau 0 ms, utilisateur 14991 ms, Intervalle: 15001

    Message d’erreur 2

    2013-07-17 05:15:02.83 spid707 Un délai d'attente s'est produit en attendant le verrou tampon -- type 4, bp 00000008BFEF300, page 1:6908, stat 0x35c0000b, database id: 4, allocation unit Id: 72057594041860096, task 0x0000005166D048 : 0, waittime 300, flags 0x1a, owning tâche 0x00000005C4F4C8. Je ne continue pas à attendre.

    Message d’erreur 3

    2013-07-17 05:44:18.71 spid690 Erreur: 701, Gravité: 17, État: 42.2013-07-17 05:44:18.71 spid690 Il n'y a pas suffisamment de mémoire du système dans le pool de ressources 'par défaut' pour exécuter cette requête.

  • Le serveur SQL cesse de répondre aux requêtes des utilisateurs.

  • La croissance inexpliquée de l'utilisation de la mémoire se produit dans l'installation sqL Server affectée.

  • Les opérations effectuées par le thread d'arrière-plan LazyWriter ne se terminent pas comme prévu. Par exemple, les opérations suivantes peuvent ne pas se terminer :

    • L'horodatage actuel n'est pas mis à jour. Par conséquent, toutes les pages de base de données ont le même horodatage, et le thread LazyWriter ne peut pas expulser les tampons.

    • Les compteurs de pool tampon dans Performance Monitor (Perfmon.exe) ne sont pas mis à jour et peuvent toujours afficher "0" (zéro).

    • Les paramètres de serveur de mémoire minimum et de mémoire maximale ne peuvent pas être modifiés dynamiquement.

    • La détection d'entrée/sortie à long terme ne fonctionne pas comme prévu.

    • Le pool tampon ne passe pas à un état de mémoire stable, et il conserve "loin" tampons.

Cause

Ces problèmes peuvent se produire parce que SQL Server 2008 et SQL Server 2005 ne sont pas le groupe de processeur (paramètres du groupe K) au courant. Le fil principal LazyWriter qui est créé sur le nœud NUMA 0 est responsable de nombreuses activités d'entretien ménager qui sont liés à la gestionnaire de mémoire SQL Server. Toutefois, le thread LazyWriter peut ne pas démarrer si le processus est en cours d'exécution sur un groupe de processeur d'autres le premier groupe sur les ordinateurs qui ont plus de 64 processeurs logiques et qui ont également CONFIGURÉ NUMA. Remarque Les messages hors mémoire (OOM) sont courants lorsque les activités d'entretien ménager qui sont généralement effectuées par le fil Lazywriter ne se produisent pas. Ce problème peut se produire même s'il y a suffisamment de mémoire libre disponible. Cela peut entraîner une erreur d'écoute de l'IOCP non-rendement, des délais d'arrêt et d'autres problèmes.

Résolution

SQL Server 2008

Pour résoudre ce problème dans SQL Server 2008, téléchargez et installez Microsoft SQL Server 2008 Service Pack 3 (SP3). Pour obtenir le package de téléchargement, et pour plus d'informations sur SQL Server 2008 SP3, rendez-vous sur le site Web Microsoft Download Center suivant :

PACK de service SQL Server 2008 3

Solution de contournement

SQL Server 2008 et SQL Server 2005

Pour contourner ce problème dans SQL Server 2008 et SQL Server 2005, désactiver NUMA. Pour désactiver NUMA, activez le drapeau de trace 8015 lorsque le service SQL Server démarre. Remarque Après avoir désactiver NUMA, vous pouvez utiliser tous les processeurs dans le système. Cependant, les performances peuvent être moins qu'optimales car il y aura un seul auditeur LazyWriter/IOCP pour tous les processeurs.

Serveur SQL 2005

Pour contourner ce problème dans SQL Server 2005, nous vous recommandons de limiter à 64 le nombre de processeurs disponibles pour le système d'exploitation. Pour limiter le nombre de processeurs disponibles, suivez les étapes suivantes :

  1. Cliquez sur Démarrer, cliquez sur Run, type msconfig, puis cliquez sur OK.

  2. Dans la boîte de dialogue de configuration du système, cliquez sur le BOOT. Onglet INI.

  3. Sur le BOOT. Onglet INI, cliquez sur Options avancées.

  4. Dans le BOOT. Boîte de dialogue INI Advanced Options, sélectionnez la case à cocher /NUMPROCMD.

  5. Dans la liste qui se trouve à côté de la case à cocher /NUMPROCMD, sélectionnez une valeur inférieure ou égale à 64, puis cliquez sur OK.

  6. Dans la boîte de dialogue system Configuration Utility, cliquez sur OK.

  7. Redémarrez le serveur.

Références

Pour plus d'informations sur les problèmes qui sont corrigés dans SQL Server 2008 SP3, y compris le numéro NUMA qui est décrit dans la section "Cause", cliquez sur le numéro d'article pour voir l'article dans la base de connaissances Microsoft:

2546951 Liste des problèmes qui sont corrigés par SQL Server 2008 Service Pack 3Pour obtenir de l'information sur la façon d'attribuer SQL Server ou SQL Server Agent à un groupe de processeurs, rendez-vous sur le site Web MSDN suivant :

Affectation de SQL Server, agent SQL à un groupe de processeurs (OOM, Hang, Compteurs de performance toujours zéro pour Buffer Pool, ...)Pour plus d'informations sur les configurations NUMA, rendez-vous sur le site Web MSDN suivant :

SQL Server: Clarifier les informations de configuration NUMAPour plus d'informations sur les configurations NUMA pour les pages étrangères, vous avez obtenu le site Web MSDN suivant:

Comment ça marche: SQL Server 2008 NUMA et Pages étrangères

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×