Sintomi

In un server che esegue Microsoft SQL Server 2008 (o versione successiva), l'attività di monitoraggio risorse registrato ogni 5 secondi il seguente messaggio:

Date_And_Time Server Using 'dbghelp. dll' versione '4.0.5' Date_And_Time Server * * Dump thread - spid = 0, PSS = 0x0000000000000 000, CE = 0X0000000000000000 Date_And_Time Accesso accesso riuscito per 'OPENTEXT\sqlcrmusr' utente. Connessione: trusted. [CLIENT: indirizzo_IP] Date_And_Time spid78 errore: 4014, gravità: 20, stato: 2. Date_And_Time spid78 un errore irreversibile durante la lettura del flusso di input dalla rete. La sessione verrà terminata. Date_And_Time Server * * * Dump dello Stack inviato a unità: \MSSQL2005\LOG\SQLDump#. txt Date_And_Time Server * * * * Date_And_Time Server * Date_And_Time Server * DUMP dello STACK iniziale: Date_And_Time Server * Date_And_Time spid 0 Date_And_Time Server * Date_And_Time Server * Monitor risorse Non di diventare Date_And_Time Server * Date_And_Time Server * * * * Date_And_Time Server *-- Date_And_Time Server * breve Dump dello Stack Date_And_Time Firma di Stack di server per il dump è 0x000000000000005C Date_And_Time, Server, sconosciuto, il lavoro di monitoraggio risorse (0x9b0) 0x0000000003A2C1C0 sembra non cedente su # Node_. Memoria liberata: 0 KB. Circa CPU utilizzato: kernel 0 msnull utente 0 msnull intervallo: Interval_value.

Causa

A partire da SQL Server 2008, l'attività di monitoraggio risorse viene attivato periodicamente per ascoltare e notificare i sottoscrittori di eventi stabile, alta o bassa memoria. Questi eventi di memoria possono essere esterni a SQL Server (notifiche di sistema dal sistema operativo) o interno a SQL Server (notifiche che sono a livello di processo dal pool di buffer). Quando si verificano tali notifiche, diversi consumer di memoria consente di tagliare il loro utilizzo memoria. Nota I consumatori possono essere classi Clerk di memoria di cache archivi, archivi utente o oggetto. Se alcuni consumatori memoria utilizzano una grande quantità di memoria, la rifilatura che eseguono i consumatori potrebbe richiedere molto tempo per completare l'operazione. Il Monitor di pianificazione che viene eseguita ogni 5seconds verifica se il Monitor risorse è spostato da un consumer a un altro negli ultimi 60 secondi. Quando il Monitor dell'utilità di pianificazione rileva che il Monitor risorse non si è spostato oltre un consumer per 60 secondi, il Monitor di pianificazione viene interpretato come il Monitor risorse entrando in uno stato non cedente, e quindi il Monitor programma registra il messaggio di errore indicato nella sezione "Sintomi".

Nota:a partire da SQL Server 2019, l'intervallo di 60 secondi viene aumentato a 120 secondi per ridurre la frequenza delle notifiche diagnostiche e la generazione di file di dump di memoria. Questi messaggi vengono generati anche se la frequenza con cui il Monitor risorse libera la memoria è inferiore a 2 MB ogni 5 secondi. Questi messaggi sono solo un'indicazione che il Monitor risorse è occupato la pulitura dei consumatori di grandi dimensioni, e questi messaggi non indicano necessariamente un problema con il Monitor risorse stesso.

Risoluzione

A partire da Microsoft SQL Server 2008 Service Pack 2 e Microsoft SQL Server 2008 R2 Service Pack 1, il messaggio di Monitor risorse non cedente è stato esteso per isolare facilmente la classe clerk di memoria che conduce alla condizione di non cedente. Il nuovo messaggio sarà simile al seguente:

Resource Monitor (0x9b0) lavoratore 0x0000000003A2C1C0 sembra non cedente nel nodo Node_ #. Memoria liberata: 0 KB. Ultima attesa: lastwaittype. Ultimo clerk: tipo clerk_type, nome clerk_name. Circa CPU utilizzato: kernel 0 ms, utente 0 ms, intervallo: Interval_value.

Le descrizioni dei diversi campi utilizzati in questo messaggio sono i seguenti:

  • La memoria liberata: questa è la quantità di memoria viene liberata dal Monitor risorse per l'intervallo specificato come misurate in kilobyte. Se la frequenza con cui viene liberata la memoria non supera i 2 MB ogni 5 secondi, il Monitor dell'utilità di pianificazione rileva questa condizione come condizione non cedente.

  • Ultima attesa: questo è l'ultimo tipo di attesa per il thread di monitoraggio risorse. È possibile utilizzare questo campo insieme al campo Circa CPU utilizzato per identificare se il thread di monitoraggio risorse è in esecuzione o in attesa di una parte significativa dell'intervallo.

  • Ultimo clerk: questo è il tipo e il nome di clerk di memoria che era il taglio della memoria quando si è verificata la condizione non cedente.

  • Circa CPU utilizzato: questo è il tempo di kernel e utente utilizzato dal Monitor risorse, misurata in millisecondi. È possibile utilizzare con gli altri campi per verificare che il Monitor risorse è in corso dello stato di avanzamento durante l'intervallo specificato.

  • Intervallo: questo è il tempo trascorso dal momento che l'ultima classe clerk è stata notificata, misurata in millisecondi.

Questo messaggio oltre le voci RING_BUFFER_RESOURCE_MONITOR dall'ora del messaggio è possibile utilizzare per identificare l'origine della notifica di memoria insufficiente. Per ulteriori informazioni su come interpretare il MONITOR RING_BUFFER_RESOURCE. visitare il blog di MSDN seguente:

Come funziona: Che cosa sono le RING_BUFFER_RESOURCE_MONITOR informa?Per ulteriori informazioni sul modo in cui SQL Server è in ascolto e risponde alle notifiche di memoria e sulle attività di monitoraggio risorse e risoluzione dei problemi di prestazioni legati alla memoria in SQL Server, vedere i seguenti articoli del blog MSDN:

La pressione della memoria - classificata Di gestione della memoria del SQLOS: la risposta alla pressione della memoria Di SQL Server utilizza i Set di messaggi Risoluzione dei problemi di prestazioni in SQL Server 2008

Stato

Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a". Questo problema è stato corretto per la prima volta in SQL Server 2008 Service Pack 2 per SQL Server 2008.This innanzitutto corretto in SQL Server 2008 R2 Service Pack 1 per SQL Server 2008 R2.

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×