Memoria di sistema insufficiente nell'impostazione predefinita del pool di risorse per eseguire questa query


15

Sto usando SQL Server 2014 - 12.0.2269.0 (X64) su Windows Server 2012 e sto riscontrando alcuni problemi di memoria. Quando eseguo una procedura memorizzata che sta eseguendo un calcolo abbastanza "pesante", ricevo un errore dopo circa 10 minuti:

Memoria di sistema insufficiente nel pool di risorse "predefinito" per eseguire questa query.

Il mio SQL Server ha più database (come 15, ma non sono sempre usati contemporaneamente). Ho guardato il file di registro di SQL Server (dopo aver ricevuto l'errore) e ho visto molte righe come questa:

2015-12-17 12: 00: 37.57 spid19s Non consentire allocazioni di pagina per il database 'Database_Name' a causa di memoria insufficiente nel pool di risorse 'predefinito'. Vedere " http://go.microsoft.com/fwlink/?LinkId=330673 " per ulteriori informazioni.

Nel registro viene generato un rapporto con la memoria utilizzata da ciascun componente (credo). Se interpreto correttamente il rapporto, possiamo vedere che c'è molta memoria consumata da MEMORYCLERK_SQLBUFFERPOOL. Puoi trovare il rapporto qui: http://pastebin.com/kgmk9dPH

Ho anche generato un rapporto con un grafico che mostra la stessa "conclusione":

![utilizzo della memoria

Ecco forse un altro rapporto utile:

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Si noti che ho anche visto questo errore nel registro:

17-12-2015 12: 04: 52.37 spid70 Impossibile allocare la pagina a causa della pressione della memoria del database: FAIL_PAGE_ALLOCATION 8

Ecco alcune informazioni sulla memoria del server:

  • Memoria totale sul server: 16 Gb

  • Memoria allocata al server SQL: 12288 Mb

  • Memoria fisica in uso (da sys.dm_os_process_memory): 9287 Mb

Se può essere d'aiuto, il server non ospita alcun database di SharePoint.


Qual è la memoria massima e la RAM totale sul server?
Kin Shah,

Risposte:


6

Anche se questa probabilmente non è una risposta esatta al tuo problema, la posterò comunque sperando che possa aiutarti in qualche modo.

Quello che stai vedendo non è MEMORYCLERK_SQLBUFFERPOOLil fatto di MEMORYCLERK_SQLLOGPOOLoccupare tutta la memoria.

Esiste un problema noto con SQL 2012 SQL Server 2012 presenta errori di memoria insufficiente . Anche se stai eseguendo il 2014, c'è la possibilità che tu stia riscontrando lo stesso problema (anche se non sono riuscito a trovare un elemento di connessione per il 2014).

Esiste anche questo problema noto sia per il 2014 che per il 2012 che riguarda la ricostruzione di indici e always on. Non hai specificato che lo stai utilizzando, ma forse lo stesso bug ha altri trigger: FIX: la memoria cache SQL diminuisce e l'utilizzo della CPU aumenta quando si ricostruisce un indice per una tabella in SQL Server

Quindi il mio miglior suggerimento per ora è l'aggiornamento all'ultima CU e vedere se succede ancora, dato che ci sono state alcune correzioni negli MEMORYCLERK_SQLLOGPOOLultimi tempi. Dato che stai eseguendo RTM con solo 2 correzioni di sicurezza che potrebbero avere senso, è disponibile una SP1 + CU multiple.

Dal momento che v'è anche l'utilizzo piuttosto elevato di memoria in MEMORYCLERK_XTPutilizzata da in-memory OLTPquesto articolo può aiutare a risolvere i problemi: monitorare e risolvere dell'utilizzo della memoria

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.