J'utilise SQL Server 2014 - 12.0.2269.0 (X64) sur Windows Server 2012 et je rencontre des problèmes de mémoire. Lorsque j'exécute une procédure stockée qui effectue un calcul assez "lourd", j'obtiens une erreur après quelque chose comme 10 minutes:
La mémoire système est insuffisante dans le pool de ressources «par défaut» pour exécuter cette requête.
Mon SQL Server possède plusieurs bases de données (comme 15, mais elles ne sont pas toujours utilisées en même temps). J'ai regardé le fichier journal de SQL Server (après avoir obtenu l'erreur) et j'ai vu beaucoup de lignes comme celle-ci:
2015-12-17 12: 00: 37.57 spid19s Interdiction des allocations de page pour la base de données 'Database_Name' en raison d'une mémoire insuffisante dans le pool de ressources 'par défaut'. Voir « http://go.microsoft.com/fwlink/?LinkId=330673 » pour plus d'informations.
Un rapport est généré dans le journal avec la mémoire utilisée par chaque composant (je pense). Si j'interprète correctement le rapport, nous pouvons voir qu'il y a beaucoup de mémoire consommée par MEMORYCLERK_SQLBUFFERPOOL
. Vous pouvez trouver le rapport ici: http://pastebin.com/kgmk9dPH
J'ai également généré un rapport avec un graphique qui montre la même "conclusion":
Voici peut-être un autre rapport utile:
Notez que j'ai également vu cette erreur dans le journal:
2015-12-17 12: 04: 52.37 spid70 Échec de l'allocation de la page en raison de la pression de la mémoire de la base de données: FAIL_PAGE_ALLOCATION 8
Voici quelques informations concernant la mémoire du serveur:
Mémoire totale sur le serveur: 16 Go
Mémoire allouée au serveur SQL: 12288 Mo
Mémoire physique utilisée (à partir de
sys.dm_os_process_memory
): 9287 Mo
Si cela peut aider, le serveur n'héberge aucune base de données SharePoint.
la source
Réponses:
Bien que ce ne soit probablement pas une réponse exacte à votre problème, je le publierai de toute façon en espérant que cela puisse vous aider en quelque sorte.
Ce que vous voyez n'est pas le,
MEMORYCLERK_SQLBUFFERPOOL
mais laMEMORYCLERK_SQLLOGPOOL
prise de toute la mémoire.Il existe un problème connu avec SQL 2012 SQL Server 2012 rencontre des erreurs de mémoire insuffisante . Même si vous exécutez 2014, il est possible que vous rencontriez le même problème (même si je n'ai pas trouvé d'élément de connexion pour 2014).
Il existe également ce problème connu pour 2014 et 2012 impliquant les reconstructions d'index et
always on
. Vous n'avez pas spécifié que vous l'utilisiez, mais le même bogue a peut-être d'autres déclencheurs: CORRECTIF: la mémoire cache SQL diminue et l'utilisation du processeur augmente lorsque vous reconstruisez un index pour une table dans SQL ServerDonc, ma meilleure suggestion pour l'instant est de mettre à jour la dernière CU et de voir si cela se produit toujours, car il y a eu quelques correctifs
MEMORYCLERK_SQLLOGPOOL
récemment. Étant donné que vous exécutez RTM avec 2 correctifs de sécurité uniquement qui pourraient avoir un sens, il existe un SP1 + plusieurs CU disponibles.Puisqu'il y a également une utilisation de mémoire assez élevée
MEMORYCLERK_XTP
utilisée parin-memory OLTP
cet article peut vous aider à dépanner: Surveiller et dépanner l' utilisation de la mémoirela source