FIX: Errore di memoria insufficiente quando lo spazio di indirizzi virtuali del processo di SQL Server è molto basso memoria disponibile

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 3074434
Avviso
Dopo avere applicato questo aggiornamento, è necessario aggiungere il trace flag - T8075 come parametro di avvio per attivare questa modifica.
Sintomi
Quando si esegue una query in una versione a 64 bit di Microsoft SQL Server 2014 o Microsoft SQL Server 2012, viene visualizzato un messaggio di errore di memoria simile al seguente nel registro errori di SQL Server:

Impossibile allocare pagine: 513 FAIL_PAGE_ALLOCATION

Le query richiedere molto tempo per terminare l'esecuzione e incontrare attese SOS_MEMORY_TOPLEVELBLOCKALLOCATOR.

Quando si esaminano i seguenti punti di informazioni, si noterà che vi sia spazio molto ridotto di indirizzi virtuali disponibile:

  • DBCC MEMORYSTATUS - sezione conta processo di sistema - memoria virtuale
  • DMV: sys.dm_os_process_memory - virtual_address_space_available_kb colonna
Questi valori iniziano circa 8 terabyte (TB) su un x64 elaborare e continuare a scalare verso il basso e raggiungere alcuni gigabyte (GB).

Quando sei nella fase in cui lo spazio di indirizzi virtuali disponibile è molto basso, che le query tenta di eseguire l'allocazione può verificarsi anche un tipo di attesa di CMEMTHREAD di memoria.

I seguenti aspetti continuerà ad aumentare nel tempo:
  • DMV: sys.dm_os_process_memory e sys.dm_os_memory_nodes - virtual_address_space_reserved_kb colonna
  • DBCC MEMORYSTATUS - sezione Memory Manager - VM riservato

Questi valori in genere aumenta in multipli del valore "max server memory" fino quasi a 8 TB.
Cause
Quando il processo di SQL Server ha raggiunto lo stato in totale memoria Server = la memoria del Server di destinazione = max server memory consentono esistono criteri di gestione della memoria di SQL Server per consentire nuove allocazioni richiedere più pagine di 8 KB riesca temporaneamente. Criterio di allocazione ripetuta in tali condizioni può causare la frammentazione dei blocchi di memoria e del consumo di spazio di indirizzi virtuali. Se il processo viene ripetuto molte volte, si esaurimento spazio di indirizzi virtuali di SQL Server e si noteranno i sintomi indicati in precedenza.
Risoluzione

Informazioni sull'hotfix

Per risolvere questo problema, installare l'hotfix da FIX: Errore durante la stored procedure ne richiama un'altra stored procedure sul server collegato in SQL Server 2014.

Prerequisiti

È necessario disporre di Aggiornamento cumulativo 3 per SQL Server 2014 Service Pack 1 per applicare questo hotfix.

Avviso

Dopo avere applicato questo aggiornamento, è necessario aggiungere il trace flag - T8075 come parametro di avvio per attivare questa modifica.

Informazioni sull'aggiornamento cumulativo

Il problema è stato risolto prima nell'aggiornamento cumulativo seguente di SQL Server.

Raccomandazioni: Installare l'aggiornamento cumulativo più recente per SQL Server
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutte le correzioni di protezione che sono stati incluse nell'aggiornamento cumulativo precedente. Si consiglia di scaricare e installare gli ultimi aggiornamenti cumulativi per SQL Server:


Questo hotfix impedisce sia la memoria insufficiente e la continua riduzione dello spazio di indirizzi virtuali disponibile che si verifichi.
Status
Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".
Informazioni
  • Windows 2012 R2 consente di spazio di indirizzi virtuali arrivare a 128 TB. Pertanto, non è possibile notare questo problema in ambienti Windows 2012 R2. Per ulteriori informazioni, vedere il seguente argomento nel centro per sviluppatori Windows:

    Limiti di memoria per le versioni di Windows e Windows Server
  • Se si continua crescita nello spazio di indirizzi virtuali anche dopo avere applicato la correzione, è possibile determinare quali query o le operazioni richiedono grandi blocchi di memoria utilizzando il Page_allocated eventi estesi. Uno script di esempio è simile al seguente:

    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
    In genere si tratta di backup del log e le operazioni di manutenzione dell'indice, che si verificano frequentemente.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 3074434 - Ultima revisione: 10/10/2016 02:17:00 - Revisione: 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 KbMtit
Feedback