Après avoir appliqué cette mise à jour, vous devez ajouter l' indicateur de suivi-T8075 en tant que paramètre de démarrage pour activer cette modification.

Symptômes

Lorsque vous exécutez une requête dans une version 64 bits de Microsoft SQL Server 2012, vous recevez un message d’erreur de mémoire insuffisante qui ressemble à ce qui suit dans le journal des erreurs SQL Server :

Échecs d’allocation de pages : FAIL_PAGE_ALLOCATION 513

La fin de l’exécution des requêtes et le temps d’exécution des requêtes SOS_MEMORY_TOPLEVELBLOCKALLOCATOR sont longs. Lorsque vous examinez les points d’informations suivants, vous constaterez que l’espace d’adressage virtuel disponible est très faible :

  • DBCC MEMORYSTATUS-processus de comptage/processus-mémoire virtuelle disponible

  • DMV : sys.dm_os_process_memory-colonne virtual_address_space_available_kb

Ces valeurs commencent entre 8 téra-octets (TB) sur un processus x64 et continuent de grimper et de descendre dans quelques gigaoctets (Go).  Lorsque vous êtes à l’endroit où l’espace d’adressage virtuel disponible est très faible, les requêtes qui essaient d’effectuer une allocation de mémoire peuvent également se produire en tant que type d’attente de CMEMTHREAD. Les points de données suivants continueront d’augmenter au fil du temps :

  • DMV : sys.dm_os_process_memory et sys.dm_os_memory_nodes de colonne virtual_address_space_reserved_kb

  • DBCC MEMORYSTATUS-section gestionnaire de mémoire-VM réservée

En règle générale, ces valeurs augmentent de multiples de la valeur « Max Server Memory » jusqu’à 8 to.

Cause

Lorsque le processus SQL Server a atteint l’État où la mémoire totale du serveur est la mémoire du serveur cible = mémoire maximale du serveur, il existe des stratégies dans le gestionnaire de mémoire de SQL Server pour permettre à de nouvelles attributions de traiter temporairement plusieurs pages de 8 Ko. Le modèle d’attribution répétée sous une telle condition risque de provoquer une fragmentation des blocs de mémoire et la consommation d’espace d’adresse virtuelle. Si ce processus se répète plusieurs fois, l’espace d’adressage virtuel SQL Server sera épuisé et vous remarquerez les symptômes mentionnés plus haut.

Résolution

Informations sur les mises à jour cumulatives

Le problème a été résolu dans la mise à jour cumulative suivante de SQL Server.

 

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Nous vous recommandons de télécharger et d’installer les dernières mises à jour cumulatives pour SQL Server :

Ce correctif logiciel empêche à la fois la mémoire insuffisante et la réduction continue de l’espace d’adressage virtuel disponible dont vous pouvez bénéficier.

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Informations supplémentaires

  • Windows 2012 R2 permet à l’espace d’adressage virtuel d’augmenter le nombre de 128 to. Par conséquent, il est possible que vous ne puissiez pas constater ce problème dans les environnements Windows 2012 R2. Pour plus d’informations, reportez-vous à la rubrique suivante du centre de développement Windows :limites de mémoire pour les versions Windows et Windows Server

  • Si vous voyez une croissance continue dans l’espace d’adressage virtuel même après avoir appliqué le correctif, vous pouvez déterminer quelles requêtes ou opérations demandent de grandes portions de mémoire à l’aide de l’événement étendu Page_allocated . Un exemple de script se présente comme suit :

    CREATE EVENT SESSION [memory_tracking] ON SERVERADD EVENT sqlos.page_allocated(    ACTION(package0.callstack,sqlos.cpu_id,sqlos.task_address,sqlos.worker_address,sqlserver.database_id,sqlserver.query_hash,sqlserver.request_id,sqlserver.session_id,sqlserver.sql_text)    WHERE ([number_pages]>(1)))ADD TARGET package0.event_file(SET filename=N'E:\Data\MSSQL11.MSSQLSERVER\MSSQL\Log\memory_tracking.xel')WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=PER_CPU,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)GO

    Il s’agit généralement de sauvegardes de journaux et d’opérations de maintenance d’index, qui se produisent fréquemment.

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 ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?

Nous vous remercions de vos commentaires.

×