Comment réduire la messagerie de mémoire de pool tampon dans SQL Server

S’applique à : Microsoft SQL Server 2005 Standard X64 EditionMicrosoft SQL Server 2005 Enterprise X64 EditionSQL Server 2008 Standard

Résumé


Microsoft SQL Server effectue une gestion dynamique de la mémoire en fonction des besoins de mémoire de la charge actuelle et des activités sur le système. Sur Windows, SQL Server peut utiliser les mécanismes de notification de mémoire fournis par l'API Windows QueryMemoryResourceNotification. Sur la base de ces informations provenant de l'API Windows DelaïMemoryNotification ou du calcul de la mémoire, SQL Server répond à la situation de mémoire actuelle sur un système spécifique. Ceci fournit les avantages suivants :
  • Le système ne bip pas l'ensemble de travail du processus SQL Server.
  • Les pages de base de données nécessaires sont disponibles en mémoire pour réduire les besoins physiques en I/O.
Pour plus d'informations, consultez le sujet "Gestion dynamique de la mémoire" et le sujet "Options de mémoire serveur" dans SQL Server Books Online.

Symptômes


Considérez les problèmes suivants qui peuvent se produire dans SQL Server :
  • Les performances de SQL Server diminuent soudainement.
  • Un ordinateur qui exécute SQL Server cesse de répondre pendant une courte période.
  • Un délai d'arrêt se produit pour les applications qui se connectent à SQL Server.
  • Les problèmes se produisent lorsque vous exécutez même des commandes simples ou utilisez des applications sur le système.
L'un des messages d'erreur suivants peut être enregistré dans le journal d'erreur du serveur SQL lorsque ces problèmes se produisent :
Message d’erreur 1
DateTime spid1s Une partie importante de la mémoire de processus serveur carré a été bipé. Cela peut entraîner une dégradation des performances. Durée: 0 secondes. Ensemble de travail (KB): 1086400, engagé (KB): 2160928, utilisation de la mémoire: 50%.
Message d’erreur 2
DateTime spid1s Une partie importante de la mémoire de processus serveur carré a été bipé. Cela peut entraîner une dégradation des performances. Durée: 315 secondes. Ensemble de travail (KB): 410156, engagé (KB): 2201296, utilisation de la mémoire: 18%.
Message d’erreur 3
DateTime spid1s Une partie importante de la mémoire de processus serveur carré a été bipé. Cela peut entraîner une dégradation des performances. Durée: 646 secondes. Ensemble de travail (KB): 901904, engagé (KB): 2215752, utilisation de la mémoire: 40%.
L'équipe de support Microsoft SQL Server a également observé des messages d'erreur supplémentaires ou des avertissements qui sont enregistrés dans le journal d'erreur du serveur SQL ou dans les journaux Windows Event. Ces messages ressemblent à ce qui suit :
DateTime Server      Resource Monitor (0x13c43) Worker 0x0412C1E8 appears to be non-yielding on Node 0. Memory freed: 34152 KB. Approx CPU Used: kernel 171 ms, user 140 ms, Interval: 125093.DateTime Server      * *******************************************************************************DateTime Server      * BEGIN STACK DUMP:DateTime Server      *   DateTime spid 0DateTime Server      * Non-yielding Resource MonitorDateTime Server      * *******************************************************************************DateTime Server      * *******************************************************************************DateTime Server      * BEGIN STACK DUMP:DateTime Server      *   DateTime spid 0DateTime Server      * Non-yielding IOCP ListenerDateTime Server      * *******************************************************************************DateTime spid2s      LazyWriter: warning, no free buffers found.DateTime spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) is marked for unload due to memory pressure.DateTime spid4s      AppDomain xx (SQLCLR.dbo[runtime].xx) unloaded.DateTime Logon       Error: 17189, Severity: 16, State: 1.DateTime Logon       SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems. [CLIENT: xx.xxx.xx.xx]Event Type:ErrorEvent Source:SQLBrowserEvent ID:8Description: The SQLBrowser service was unable to process a client request.  
Ces messages d'erreur ou avertissements supplémentaires peuvent apparaître avec le message d'erreur « Une partie importante de la mémoire du processus serveur carré a été bipé ». Dans plusieurs cas, ces messages ou avertissements d'erreur supplémentaires n'apparaissaient pas avec le message d'erreur.Si vous remarquez l'un de ces messages d'erreur ou des avertissements, considérez le serveur SQL de travail paging qui est discuté dans cet article comme une cause possible, mais pas comme la seule cause. Ces messages ou avertissements d'erreur supplémentaires pourraient être enregistrés en raison de diverses autres conditions ou causes.

Cause


Ce problème se produit parce que les pages du système d'exploitation Windows sur l'ensemble de travail du processus SQL Server.Ces messages d'erreur sont enregistrés lorsque l'ensemble de travail d'un processus SQL Server atteint 50 pour cent ou moins de la mémoire qui est engagée dans le processus sqL Server. Vous pouvez utiliser ces messages d'erreur pour déterminer le cas où les performances de SQL Server diminuent considérablement parce que le système d'exploitation Windows débranche l'ensemble de travail du processus SQL Server. En outre, ces messages d'erreur sont enregistrés toutes les cinq minutes pendant les 30 premières minutes. Après les 30 premières minutes, la fréquence de ces messages d'erreur double jusqu'à ce que la fréquence atteigne le maximum d'une journée.Lorsque ce problème se produit, vous remarquerez peut-être que l'ensemble de travail d'autres applications sur le système est également bipé à la même époque.Pour plus d'informations, visitez ce qui suit :

Le message sqL Server Working Set

Par ailleurs, un problème connu existe dans SQL Server dans lequel vous pouvez recevoir une instance de ce message d'erreur. Le message d'erreur est enregistré dans le journal d'erreur du serveur SQL pendant le processus de démarrage de SQL Server. Le message d'erreur peut être un faux avertissement. Par conséquent, il pourrait ne pas indiquer que l'assiette de travail a effectivement eu lieu. Pour plus d'informations, visitez ce qui suit :

SQL Server signale un message d'avertissement de garniture de mise en place pendant la phase de démarrage précoce

Surallocation de mémoire dans les paramètres VM. Par exemple HyperV ou VMWare problèmes de pilote de ballon. Pour plus d'informations, visitez ce qui suit :

1003470 Balloon driver conserve la mémoire causant des problèmes de performances du système d'exploitation invité de la machine virtuelle

2001003 Problèmes de performances de la machine virtuelle ESX/ESXi

Solution de contournement


Avant d'essayer de contourner ce problème, effectuez les étapes dans la section « Comment résoudre ce problème » pour résoudre ce problème.Si vous rencontrez toujours ce problème, vous pouvez empêcher le système d'exploitation Windows de mettre en pagination la mémoire de pool tampon du processus SQL Server en verrouillant la mémoire allouée au pool tampon dans la mémoire physique. Vous verrouillez la mémoire en attribuant les pages de verrouillage dans l'utilisateur mémoire directement au compte utilisateur qui est utilisé comme compte de démarrage du service SQL Server.

Remarque L'utilisation de pages de verrouillage dans la mémoire garantit que la mémoire gérée par SQL Server n'est pas bipée. Cependant, les piles de threads, l'EXE et toutes les images DLL, la mémoire de tas, la mémoire CLR peuvent toujours être bipés par l'OS.Remarque Depuis SQL Server 2008 SP1 Cumulative Update 2 les deux éditions SQL Server Standard et Enterprise peuvent utiliser les pages de verrouillage dans la mémoire utilisateur droit. Pour plus d'informations sur la prise en charge des pages verrouillées, cliquez sur le numéro d'article suivant pour voir l'article dans la base de connaissances Microsoft :

970070 Support for Locked Pages on SQL Server 2005 Standard Edition et sur SQL Server 2008 Standard Edition
Pour attribuer les pages de verrouillage dans la mémoire utilisateur à droite, suivez les étapes suivantes:
  1. Cliquez sur Démarrer, cliquez sur Run, type gpedit.msc, puis cliquez sur OK. Remarque Lla La boîte de dialogue de la politique de groupe s'affiche.
  2. Élargir la configuration de l'ordinateur, puis étendre les paramètres Windows.
  3. Élargir les paramètres de sécurité,puis étendre Politiques locales.
  4. Cliquez sur L'affectation des droits desutilisateurs , puis double-cliquez sur les pages de verrouillage en mémoire.
  5. Dans la case de dialogue de configuration de la stratégie de sécurité locale,cliquez sur Ajouter l'utilisateur ou le groupe.
  6. Dans la boîte de dialogue Sélectionner les utilisateurs ou les groupes, ajoutez le compte qui a la permission d'exécuter le fichier Sqlservr.exe, puis cliquez sur OK.
  7. Fermer la boîte de dialogue de la politique de groupe.
  8. Redémarrez le service SQL Server.
Après avoir assigné les pages de verrouillage dans la mémoire utilisateur droit et vous redémarrez le service SQL Server, le système d'exploitation Windows ne pages plus sur la mémoire de pool tampon dans le processus SQL Server. Toutefois, le système d'exploitation Windows peut toujours biper la mémoire de pool non tampon dans le processus SQL Server.Vous pouvez valider que le droit utilisateur est utilisé par l'instance de SQL Server en vous assurant que le message suivant est écrit dans le journal d'erreur du serveur SQL au démarrage :
"Utilisation de pages verrouillées pour pool tampon"
Ce message ne s'applique qu'à SQL Server. Pour plus d'informations sur ce message dans l'ERRORLOG, visitez ce qui suit :Lorsque le système d'exploitation Windows publie la mémoire de pool non tampon, vous pouvez toujours rencontrer des problèmes de performances. Toutefois, les messages d'erreur mentionnés dans la section « Symptômes » ne sont pas enregistrés dans le journal d'erreur du serveur SQL.

Informations supplémentaires


Comment résoudre ce problème

Il existe trois grandes catégories de problèmes qui peuvent causer ce problème :

  1. Problèmes liés aux applications : toutes les applications ensemble ont épuisé la mémoire physique disponible et le système d'exploitation doit libérer une certaine mémoire pour les nouvelles demandes de ressources. Typiquement, l'approche ici est de trouver quelles applications épuisent la mémoire et de prendre les mesures nécessaires pour équilibrer la mémoire entre eux sans conduire à l'épuisement de la RAM.
  2. Problèmes de pilote d'appareil : les pilotes d'appareils peuvent provoquer la mise en gage de tous les processus si le pilote appelle une fonction d'allocation de mémoire de manière incorrecte.
  3. Problèmes du système d'exploitation
Pour résoudre ce problème, suivez les étapes suivantes :
  1. Questions liées aux applications :

    Les applications ensemble peuvent consommer toute la RAM sur le système. Si de nouvelles demandes de mémoire sont faites, le système d'exploitation doit les satisfaire et s'il n'y a pas de mémoire libre, il coupera l'ensemble de travail des applications en cours d'exécution pour satisfaire les demandes de mémoire. Dans de tels cas, vous pouvez observer que l'ensemble de travail pour la plupart sinon toutes les applications diminue de manière significative. Pour observer ce recueillir le compteur suivant Moniteur de performance pour toutes les applications sur le système:

    Objet de performance : Processus Compteur: Ensemble de travail

    En outre, surveillez le compteur suivant pour corréler combien de mémoire physique est disponible sur le système.

    Objet de performance : Mémoire Compteur: Mémoire disponible (MB)

    Le comportement typique que vous pouvez observer est la réduction de la mémoire disponible près de 0 Mo tandis que dans le même temps une chute soudaine des compteurs de l'ensemble de travail pour la plupart (tous) des processus sur le système. Si vous observez un tel comportement, vous devrez peut-être prendre des mesures pour réduire l'utilisation de la mémoire sur le système, ce qui inclut par exemple la réduction de la mémoire Max Server pour SQL Server.

    Les applications peuvent également utiliser le cache système trop, et peut provoquer une forte croissance du cache système. Pour répondre à la croissance du cache système, le système déforme l'ensemble de travail du processus SQL Server ou d'autres applications. Si vous rencontrez ce problème, vous pouvez utiliser certaines fonctions de gestion de la mémoire dans l'application. Ces fonctions contrôlent l'espace de cache système que les opérations De fichier I/O peuvent utiliser dans l'application. Par exemple, vous pouvez utiliser la fonction SetSystemFileCacheSize et la fonction GetSystemFileCacheSize pour contrôler l'espace de cache système que les opérations De fichiers I/O peuvent utiliser. Vous pouvez utiliser l'objet de performance Mémoire pour afficher les valeurs de différents compteurs dans cet objet afin de déterminer si l'ensemble de travail du cache système utilise trop de mémoire. Par exemple, vous pouvez afficher les compteurs Cache Bytes et System Cache Resident Bytes. Pour plus d'informations sur ce sujet, visitez les sites Web Microsoft suivants :

    Too Much CacheMicrosoft Windows Dynamic Cache Service976618   Vous rencontrez des problèmes de performances dans les applications et les services lorsque le cache de fichiers système consomme la plupart de la RAM physique

    Vous pouvez télécharger et déployer le "Microsoft Windows Dynamic Cache Service" pour contrôler la mémoire consommée par le cache système.

  2. Problèmes de pilote d'appareil :

    Si un pilote d'appareil utilise la fonction MmAllocateContiguousMemory, et s'il définit la valeur du paramètre Le plus élevé acceptableà 4 gigaoctets (GB), le système d'exploitation Windows peut biper l'ensemble de travail des processus sur le système, y compris le processus SQL Server. Pour résoudre ce problème, contactez le fournisseur du pilote de périphérique pour les mises à jour du pilote.

    Lorsqu'un pilote d'appareil tente d'allouer de la mémoire, le système d'exploitation Windows peut définir l'ensemble de travail d'autres applications. Ce hotfix Windows vous permet d'utiliser le traçage d'événements pour trouver le pilote de l'appareil qui cause un problème. Pour trouver plus d'informations sur le pilote spécifique qui provoque le comportement de coupe de l'ensemble de travail, voir l'article MSDN"Identifier les conducteurs qui allouent la mémoire contigue."

  3. Problèmes du système d'exploitation : Pour résoudre les problèmes connus qui font que le système d'exploitation Windows bipse l'ensemble de travail du processus SQL Server, appliquez les correctifs qui sont décrits dans les articles Microsoft Knowledge Base suivants. 

    Remarque Les hotfixes sont cumulatifs. Une version ultérieure d'un hotfix contient les versions antérieures de ce hotfix.

  • L'ensemble sqL Server peut être coupé lorsque le système utilise certaines fonctionnalités TCP avancées. Pour plus d'informations, cliquez sur le numéro d'article suivant pour voir l'article dans la base de connaissances Microsoft :

942861 Message d'erreur lorsqu'une application se connecte à SQL Server sur un serveur en cours d'exécution De Windows Server : « Erreur réseau générale », « défaillance du lien de communication » ou « Erreur de niveau de transport »

  • Sur un ordinateur multiprocesseur qui fonctionne Windows Server 2003, le processus système peut consommer la plupart de la mémoire du système disponible. Pour plus d'informations, cliquez sur le numéro d'article suivant pour voir l'article dans la base de connaissances Microsoft :

942486 Le processus système peut consommer la plupart de la mémoire du système disponible sur un ordinateur multiprocesseur qui fonctionne Windows Server 2003

  • Si SQL Server fonctionne avec SAP R/3, vous pouvez rencontrer un problème de messagerie. Pour plus d'informations, cliquez sur le numéro d'article suivant pour voir l'article dans la base de connaissances Microsoft :

931308 Vous pouvez rencontrer une augmentation de la messagerie sur le disque dur lorsque vous exécutez un programme SAP R/3 sur un ordinateur Windows Server 2003

  • Si vous exécutez SQL Server sur Windows Server 2008, vous devez appliquer des correctifs pour les problèmes connus qui peuvent conduire à la coupe de l'ensemble de travail ou la consommation de mémoire excessive inutile par d'autres composants du système d'exploitation. Pour plus d'informations, cliquez sur les numéros d'article suivants pour afficher les articles de la base de connaissances Microsoft :

971714 Le processus de génération de rapports peut cesser de répondre lorsque vous exécutez Perfmon.exe avec le modèle Active Directory Diagnostics pour générer un rapport sur un contrôleur de domaine basé sur Windows Server 2008

  • Si vous exécutez SQL Server sur Windows Serve 2008 R2, vous devez appliquer des correctifs pour les problèmes connus qui peuvent conduire à l'ajustement de l'ensemble de travail. Pour plus d'informations, cliquez sur les numéros d'article suivants pour voir l'article dans la base de connaissances Microsoft :

979149 Un ordinateur qui exécute Windows 7 ou Windows Server 2008 R2 devient insensible lorsque vous exécutez une grande application

2155311 Les performances médiocres se produit sur un ordinateur qui a des processeurs basés sur NUMA et qui est en cours d'exécution Windows Server 2008 R2 ou Windows 7 si un thread demande beaucoup de mémoire qui est dans les 4 premiers Go de mémoire2468345 Ordinateur fonctionne par intermittence mal ou cesse de répondre lorsque le pilote Storport est utilisé dans Windows Server 2008 R2

Comment déterminer la mémoire utilisée par SQL Server

Vous pouvez utiliser Performance Monitor pour afficher la mémoire utilisée par SQL Server lorsque les pages verrouillées en mémoire ne sont pas activées.

SQL Server utilise également le compteur de performances suivant pour exposer la mémoire que le pool tampon alloue :

Objet de performance: SQL Server:Memory ManagerCompteur: Total Server Memory(KB)

Remarque Si l'instance du serveur SQL est une instance nommée, le nom de l'objet de performance est le suivant :

MSSQL$InstanceName: Gestionnaire de mémoire

En outre, vous pouvez mesurer l'effet de la pagination sur SQL Server en surveillant les compteurs de performances suivants :

Objet de performance : ProcessusCompteur: Private BytesExemple: sqlservrObjet de performance : ProcessusCompteur: Ensemble de travailExemple: sqlservr

Le compteur Private Bytes mesure la mémoire virtuelle actuellement engagée. Le compteur Working Set mesure la quantité de mémoire virtuelle actuellement engagée qui occupe la mémoire physique (RAM).

Si la valeur du compteur Working Set est inférieure à la valeur du compteur Total Server Memory (KB) (ou celle de Private Bytes), au moins une partie de la mémoire qui fait partie du pool tampon a été coupée de l'ensemble de travail SQL Server.

Vous pouvez également observer la pagination globale (découpe de l'ensemble de travail) sur le système en surveillant le compteur de performance suivant qui affiche les pages lues et écrites sur disque :

Objet de performance : MémoireCompteur : Entrées de page/sec et sorties de page/sec

Pour plus d'informations sur la façon d'utiliser ces compteurs pour déterminer la page mémoire, cliquez sur le numéro d'article suivant pour afficher l'article dans la base de connaissances Microsoft:

889654 Comment faire pour définir la taille du fichier de pagination nécessaire aux versions 64 bits de Windows Server 2003 ou Windows XP 
Après avoir assigné les pages de verrouillage dans la mémoire utilisateur droit et vous redémarrez le service SQL Server, le pool tampon du processus serveur SQL répond toujours aux événements de notification de ressources de mémoire, et il augmente ou diminue dynamiquement en réponse à ces événements. Toutefois, vous ne pouvez pas voir les allocations de mémoire pour le pool de mémoire qui sont verrouillées en mémoire dans les compteurs de performances suivants :
  • Le comptoir Private Bytes et le comptoir Working Set dans Performance Monitor
  • La colonne Utilisation Mem sur l'onglet Processus dans Task Manager
La raison en est qu'une fois que vous activez les pages verrouillées en mémoire, SQL Server commence à utiliser l'API AWE et n'alloue pas de mémoire via le gestionnaire de mémoire virtuelle OS. Une fois ces pages verrouillées, ces compteurs de performances représentent les allocations de mémoire à l'intérieur du processus SQL Server pour les allocations qui n'utilisent pas le pool de mémoire. Le compteur Total Server Memory(KB) de l'objet de performance SQL Server:Memory Manager représente toujours avec précision la mémoire allouée au pool tampon.

Considérations importantes avant d'attribuer les "Lock pages en mémoire" droit utilisateur pour une instance de serveur SQL

Vous devez prendre des considérations supplémentaires avant d'attribuer les pages de verrouillage dans le droit utilisateur de mémoire. Si vous attribuez ce droit utilisateur sur les systèmes qui sont configurés incorrectement, le système peut devenir instable ou subir une diminution des performances de l'ensemble du système. En outre, l'ID 333 de l'événement peut être enregistré dans le journal des événements.Si vous contactez Microsoft Customer Support Service (CSS) pour ces problèmes, les ingénieurs CSS peuvent vous demander de révoquer ce droit d'utilisateur pour le compte utilisateur qui est utilisé comme compte de démarrage du service SQL Server. Cette étape peut être nécessaire pour recueillir des données de performances importantes que les ingénieurs CSS peuvent utiliser pour la configuration nécessaire des différentes options pour SQL Server et pour d'autres applications qui s'exécutent sur le système. Une fois que les ingénieurs CSS ont collecté les données de performance, vous pouvez affecter les pages de verrouillage dans l'utilisateur de mémoire directement au compte de démarrage du service SQL Server.Avant d'attribuer les pages de verrouillage dans la mémoire utilisateur droit, assurez-vous que vous capturez un journal Moniteur de performance pour déterminer les exigences de mémoire de diverses applications et services qui sont installés sur le système. Ces applications comprennent également SQL Server . Pour déterminer les besoins en mémoire, recueillez les informations de base suivantes :
  • Assurez-vous que vous configurez correctement l'option de mémoire serveur max et l'option de mémoire serveur min. Ces options ne reflètent que l'exigence de mémoire du pool de mémoire du processus SQL Server. Ces options n'incluent pas la mémoire allouée à d'autres composants dans le processus SQL Server. Ces composantes comprennent les éléments suivants :
    • Les fils de travail SQL Server
    • Divers DLL et composants que le processus SQL Server charge dans l'espace d'adresse du processus SQL Server
    • Les opérations de sauvegarde et de restauration
  • Les DLL et les composants comprennent divers fournisseurs OLE DB, des procédures stockées étendues, des objets Microsoft COM qui sont utilisés pour la procédure sp_OACreate stockées, des serveurs liés et SQL Server CLR. La mémoire allouée pour ces composants relève de la zone de pool non tampon de l'espace d'adresse du processus SQL Server. Pour déterminer idéalement la quantité maximale de mémoire que l'ensemble du processus sqL Server peut utiliser, vous devez soustraire la mémoire qui est allouée pour les composants qui n'utilisent pas le pool tampon de la mémoire totale que vous souhaitez que le processus sqL Server utilise. Ensuite, vous pouvez utiliser la valeur restante pour définir l'option de mémoire serveur maximum. Avant de définir l'option de mémoire serveur maximum et l'option de mémoire serveur min, vous devez examiner attentivement le sujet "Réglage des options de mémoire manuellement" dans SQL Server Books Online.
  • Déterminez l'exigence de mémoire d'autres applications et des composants du système d'exploitation Windows. Les applications peuvent inclure d'autres composants SQL Server, par exemple, SQL Server Agent, SQL Server Replication Agents, SQL Server Reporting Services, SQL Server Analysis Services, SQL Server Integration Services, et SQL Server Full Text Search. Les applications qui effectuent des opérations de sauvegarde et des opérations de copie de fichiers peuvent utiliser beaucoup de mémoire. Considérez les opérations telles que la copie en vrac et l'agent instantané qui génèrent des fichiers IO. Vous devez tenir compte de l'exigence de mémoire de toutes ces applications lorsque vous déterminez la valeur de l'option de mémoire serveur maximum et de l'option de mémoire serveur min. Vous pouvez utiliser le compteur Private Bytes et le compteur Working Set sous l'objet Processus pour chaque processus afin de déterminer l'exigence de mémoire pour un processus spécifique.
  • Par défaut, les pages de verrouillage dans le droit utilisateur de mémoire ont déjà été attribuées au compte système local intégré. Pour plus d'informations, visitez le site Web Microsoft suivant :
  • Si vous utilisez un compte utilisateur Windows dans le monde entier pour tous les processus SQL Server dans un domaine, déterminez les droits d'utilisateur qui sont attribués en utilisant une configuration de stratégie de groupe. Un processus serveur SQL 32 bits peut utiliser ce compte comme compte de démarrage. Toutefois, ce compte nécessite les pages de verrouillage dans le droit utilisateur de mémoire pour activer la fonction Extensions de fenêtre d'adresse (AWE). Pour plus d'informations, voir le sujet « Fournir le maximum de mémoire à SQL Server » dans SQL Server Books Online.
  • Avant de configurer l'option de mémoire serveur maximum et l'option de mémoire serveur min pour plusieurs instances sqL Server, considérez les exigences de mémoire du pool non buffer pour chaque instance de SQL Server. Ensuite, configurez ces options pour chaque instance de SQL Server.

Idéalement, vous collectez ces informations de base pendant les charges de pointe. Par conséquent, vous pouvez déterminer les exigences de mémoire pour diverses applications et composants pour prendre en charge la charge de pointe. Les exigences de mémoire varient d'un système à l'autre, selon les activités et les applications qui s'exécutent sur le système.

Vous pouvez interroger les informations fournies dans la vue de gestion dynamique sys.dm_os_process_memory pour comprendre si le système rencontre des conditions de mémoire faible. Pour plus d'informations, consultez la référence SQL Server Books Online sur le site suivant :

sys.dm_os_process_memory (Transact-SQL)

Améliorations ajoutées dans Windows Server 2008 et dans Windows Server 2008 R2 qui réduisent le découpage des ensembles de travail

Windows Server 2008 et Windows Server 2008 R2 améliorent le mécanisme d'allocation de mémoire contigu. Cette amélioration permet à Windows Server 2008 et Windows Server 2008 R2 de réduire dans une certaine mesure les effets de la pagination sur l'ensemble de travail des applications lorsque de nouvelles demandes de mémoire arrivent. Ce qui suit est une explication des améliorations du livre blanc de Microsoft "Advances in Memory Management in Windows":
Dans Windows Server 2008, l'allocation de la mémoire physiquement contigu est grandement améliorée. Les demandes d'attribution de mémoire contigus sont beaucoup plus susceptibles de réussir parce que le gestionnaire de mémoire remplace désormais dynamiquement les pages, généralement sans couper l'ensemble de travail ou effectuer des opérations I/O. En outre, de nombreux autres types de pages, comme les piles de grains et les pages de métadonnées du système de fichiers, entre autres, sont maintenant candidats au remplacement. Par conséquent, une mémoire plus contigue est généralement disponible à un moment donné. En outre, le coût d'obtention de telles allocations est considérablement réduit.
Pour consulter le livre blanc « Progrès dans la gestion de la mémoire dans Windows », visitez le site Web Microsoft suivant :Pour plus d'informations, visitez les sites Web Microsoft suivants :
en 2001745 Le découpage des ensembles de travail peut avoir un impact négatif sur les performances de SQL, Exchange et Operating System sous Windows 2003
Remarque Sur un ordinateur Windows Server 2008, vous devez installer SQL Server Service Pack 2 (SP2) ou un pack de service SQL Server ultérieur.Les produits tiers dont cet article parle sont fabriqués par des entreprises indépendantes de Microsoft. Microsoft ne fait aucune garantie, implicite ou autre, sur les performances ou la fiabilité de ces produits.