CORRECTIF : Erreur de mémoire insuffisante lorsque l’espace d’adressage virtuel du processus SQL Server est très faible sur la mémoire disponible

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 3074434
Avertissement
Après avoir appliqué cette mise à jour, vous devez ajouter le trace flag - T8075 comme 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 2014 ou Microsoft SQL Server 2012, vous recevez un message d’erreur de mémoire insuffisante semblable au suivant dans le journal des erreurs SQL Server :

Échec de l’allocation des pages : FAIL_PAGE_ALLOCATION 513

Requêtes de prennent beaucoup de temps pour terminer l’exécution et de rencontrer les attentes SOS_MEMORY_TOPLEVELBLOCKALLOCATOR.

Lorsque vous examinez les points d’information ci-dessous, vous trouverez qu’il existe d’espace d’adressage virtuel de disponible très faible :

  • DBCC MEMORYSTATUS - section compte des processus système, la mémoire virtuelle disponible
  • La DMV : sys.dm_os_process_memory - virtual_address_space_available_kb de colonne
Ces valeurs débutent d’environ 8 téraoctets (To) sur un x64 traiter et continuer de grimper vers le bas et atteindre quelques gigaoctets (Go).

Lorsque vous êtes au stade où l’espace d’adressage virtuel disponible est très faible, les requêtes qui essayez d’effectuer allocation peut également rencontrer d’un type d’attente de CMEMTHREAD de mémoire.

Les points de données suivants continuent de croître au fil du temps :
  • VUE : sys.dm_os_process_memory et sys.dm_os_memory_nodes - virtual_address_space_reserved_kb de la colonne
  • DBCC MEMORYSTATUS - section du Gestionnaire de mémoire : mémoire virtuelle réservée

Ces valeurs augmentent généralement en multiples de la valeur de « max server memory » jusqu'à 8 To presque.
Cause
Dès que le processus SQL Server a atteint l’état où le Total mémoire serveur = 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 vous permettre de nouvelles allocations demander plusieurs pages de 8 Ko pour réussir temporairement. Modèle de répartition répétée sous cette condition risque de fragmentation des blocs de mémoire et la consommation d’espace d’adressage virtuel. Si ce processus se répète souvent, épuisement de l’espace d’adressage virtuel de SQL Server, et vous pourrez constater les symptômes qui ont été décrites précédemment.
Résolution

Informations sur le correctif

Pour résoudre ce problème, installez le correctif à partir de CORRECTIF : Erreur lors de la procédure stockée en appelle une autre procédure stockée sur un serveur lié dans SQL Server 2014.

Conditions préalables

Vous devez disposer Mise à jour cumulative 3 pour SQL Server 2014 installé Service Pack 1 pour appliquer ce correctif.

Avis

Après avoir appliqué cette mise à jour, vous devez ajouter le trace flag - T8075 comme paramètre de démarrage pour activer cette modification.

Informations de mise à jour cumulative

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

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


Ce correctif empêche à la fois l’extérieur de la mémoire et la réduction continue d’espace d’adressage virtuel disponible que vous pouvez rencontrer.
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».
Plus d'informations
  • Windows 2012 R2 permet d’espace d’adressage virtuel atteindre 128 To. Par conséquent, vous pouvez remarquer ce problème dans les environnements Windows 2012 R2. Pour plus d’informations, consultez la rubrique suivante dans le centre de développement Windows :

    Limites de mémoire pour les versions de Windows et de 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 les opérations demandent des grands segments de mémoire à l’aide de la Page_allocated événements étendus. Un exemple de script ressemble à ceci :

    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
    En général, ce sont les sauvegardes du journal et les opérations de maintenance de l’index, qui se produisent fréquemment.

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 3074434 - Dernière mise à jour : 10/10/2016 02:21:00 - Révision : 9.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbsurveynew kbexpertiseadvanced kbfix kbmt KB3074434 KbMtfr
Commentaires