Share via


Surveiller l'utilisation de la mémoire

Surveillez périodiquement une instance de SQL Server pour vous assurer que l'utilisation de la mémoire reste dans des limites normales.

Pour surveiller l'état de la mémoire basse, utilisez les compteurs des objets suivants :

  • Mémoire : Octets disponibles

  • Mémoire : Pages/sec

Le compteur Octets disponibles indique combien d'octets de mémoire sont actuellement disponibles pour les processus. Le compteur Pages/s indique le nombre de pages qui ont été extraites du disque en raison de défauts de page ou écrites sur le disque pour libérer de l’espace dans la plage de travail en raison de défauts de page.

Des valeurs faibles du compteur Octets disponibles peuvent indiquer un manque global de mémoire sur l'ordinateur ou bien qu'un programme ne libère pas la mémoire. Une valeur élevée du compteur Pages/s peut indiquer une pagination excessive. Surveillez le compteur Mémoire : Défauts de page/s pour vérifier que l’activité du disque n’est pas due à la pagination.

Un faible taux de pagination (et donc des défauts de page) est typique, même si l'ordinateur dispose de beaucoup de mémoire disponible. Le gestionnaire de mémoire virtuelle de Microsoft Windows soustrait des pages à SQL Server et à d'autres processus quand il réduit la taille des parties actives de ces processus. Son activité a tendance à provoquer des défauts de page. Pour déterminer si SQL Server ou un autre processus est la cause d’une pagination excessive, surveillez le compteur Processus : Défauts de page/s pour l’instance de processus SQL Server.

Pour plus d'informations sur la résolution d'une pagination excessive, consultez la documentation du système d'exploitation Windows.

Isolement de la mémoire utilisée par SQL Server

Par défaut, SQL Server modifie dynamiquement ses besoins en mémoire, en fonction des ressources système disponibles. Si SQL Server a besoin de plus de mémoire, il demande au système d'exploitation de déterminer si de la mémoire physique libre est disponible. Dans l'affirmative, il l'utilise. Si SQL Server n’a pas besoin de la mémoire actuellement allouée, il libère la mémoire sur le système d’exploitation. Vous pouvez cependant ignorer cette option pour utiliser dynamiquement de la mémoire au moyen des options de configuration du serveur minservermemoryet maxservermemory Pour plus d'informations, consultez Options de mémoire du serveur.

Pour surveiller la mémoire utilisée par SQL Server , examinez les compteurs de performances suivants :

  • Processus : Plage de travail

  • SQL Server : Buffer Manager : Taux d’accès au cache

  • SQL Server : Buffer Manager : Pages de base de données

  • SQL Server : Memory Manager : Mémoire totale du serveur (Ko)

Le compteur WorkingSet indique la quantité de mémoire utilisée par un processus. Si ce nombre est constamment inférieur à la quantité de mémoire définie par les options mémoire minimale du serveur et mémoire maximale du serveur, SQL Server est configuré pour utiliser trop de mémoire.

Le compteur Buffer Cache Hit Ratio est propre à une application. Cependant, une valeur supérieure ou égale à 90 % est souhaitable. Ajoutez de la mémoire jusqu'à ce que cette valeur soit régulièrement supérieure à 90 %. Une valeur supérieure à 90 pour cent indique que plus de 90 % de toutes les requêtes ont été satisfaites à partir de la mémoire cache.

Si la valeur du compteur TotalServerMemory (KB) est régulièrement élevée par rapport à la quantité de mémoire physique de l’ordinateur, cela peut indiquer que davantage de mémoire est nécessaire.

Détermination de l'allocation de mémoire actuelle

La requête suivante retourne des informations sur la mémoire allouée actuellement.

SELECT  
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB,  
(locked_page_allocations_kb/1024) AS Locked_pages_used_Sqlserver_MB,  
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,  
process_physical_memory_low,  
process_virtual_memory_low  
FROM sys.dm_os_process_memory;