Resursövervakaren registrerar ett icke framställning villkor på en server som kör SQL Server

Gäller för: Microsoft SQL Server

Symptom


På en server som kör Microsoft SQL Server 2008 (eller en senare version), loggar aktiviteten Resursövervakaren följande meddelande var femte sekund:
Date_And_Time Server med 'dbghelp.dll' version '4.0.5'Date_And_Time Server ** dumpa tråd - spid = 0, PSS = 0x0000000000000000, EG = 0X0000000000000000Date_And_Time Inloggning logga in lyckades för användare 'OPENTEXT\sqlcrmusr'. Anslutning: betrodda. [Klient: IP-adress]Date_And_Time spid78 fel: 4014, allvarlighetsgrad: 20 tillstånd: 2.Date_And_Time spid78 ett allvarligt fel uppstod vid läsning av Indataströmmen från nätverket. Sessionen kommer att avslutas.Date_And_Time Server *** Stack Dump som skickas till enhet: \MSSQL2005\LOG\SQLDump#.txtDate_And_Time Server * ***Date_And_Time Server *Date_And_Time Server * BÖRJA stackdump:Date_And_Time Server * Date_And_Time spid 0Date_And_Time Server *Date_And_Time Server * icke-framställning av ResursövervakarenDate_And_Time Server *Date_And_Time Server * ***Date_And_Time Server * torrsubstanshaltDate_And_Time Server * kort stackdumpDate_And_Time Server Stack signatur för dumpning är 0x000000000000005CDate_And_Time, Server, Okänd, arbetare Resursövervakaren (0x9b0) 0x0000000003A2C1C0 verkar vara icke-framställning på Node_ #. Innan minnet frigjordes: 0 KB. Används ca CPU: kernel 0 msnull användare 0 msnull intervall: Interval_value.

Orsak


Börjar med SQL Server 2008 aktiveras Resursövervakaren uppgift med jämna mellanrum att lyssna på och underrätta abonnenterna om låg, hög eller jämn minne händelser. Händelserna minne kan vara externa till SQL Server (meddelanden som är hela systemet från operativsystemet) eller interna för SQL Server (meddelanden som är hela processen från buffertpool.). När sådana anmälningar uppstår trimma olika minne konsumenterna deras minnesanvändning.Obs! Konsumenter kan vara minne lagerarbetare som är cache-lagrar eller användaren lagrar objekt butiker.Om vissa konsumenter minne använder en stor mängd minne, kan Putsning som konsumenterna ta lång tid att slutföra.Schemaläggaren Monitor-aktivitet som körs varje 5seconds kontrollerar om Resursövervakaren har flyttats från en kund till en annan i de senaste 60 sekunderna. När Schemaläggaren Monitor upptäcker att Resursövervakaren inte passerat en konsument i 60 sekunder, schema Monitor tolkar detta som Resursövervakaren anger ett icke-framställning av tillstånd och sedan schema Monitor loggar felmeddelandet är som nämns i avsnittet ”Symptom”.
Obs! Börjar med SQL Server 2019, ökade 60-sekunders intervall till 120 sekunder att minska frekvensen av dessa diagnostiska meddelanden och generering av minnesdumpar.Dessa meddelanden är även upp om den hastighet vid vilken Resursövervakaren Frigör minne är mindre än 2 MB 5 sekunder.Dessa meddelanden är bara en indikation att Resursövervakaren är upptagen rensar stora konsumenter och meddelandena inte betyda problem med Resursövervakaren själva.

Lösning


Från och med Microsoft SQL Server 2008 Service Pack 2 och Microsoft SQL Server 2008 R2 Service Pack 1 utökades-framställning Resursövervakaren meddelandet att enkelt isolera den minne clerk som leder till icke-framställning av villkoret.Nytt meddelande slag av följande:
Resource Monitor (0x9b0) arbetare 0x0000000003A2C1C0 verkar vara icke-framställning på noden Node_ #. Innan minnet frigjordes: 0 KB. Senast vänta: lastwaittype. Sista clerk: Skriv clerk_type, namnge clerk_name. Används ca CPU: kernel 0 ms, användaren 0 ms intervall: Interval_value.
Här följer beskrivningar av de olika fält som används i det här meddelandet:
  • Frigöra minne: Detta är hur mycket minne frigörs av Resursövervakaren för det angivna intervallet som mäts i kilobyte. Om den hastighet som minne frigörs inte överstiger 2 MB var femte sekund, upptäcker Scheduler Monitor detta villkor som ett villkor för icke-framställning.
  • Senast vänta: Detta är den sista vänta typ för Resursövervakaren tråden. Du kan använda fältet tillsammans med fältet CA CPU används för att identifiera om Resursövervakaren tråden körs eller väntar på att en betydande del av intervallet.
  • Sista clerk: Detta är typ och namn på minne clerk som trimma minnet när villkoret framställning inträffade.
  • CA CPU används: kernel- och gången som används av Resursövervakaren mätt i millisekunder. Du kan använda detta tillsammans med andra fält för att kontrollera att Resursövervakaren gör framsteg under det angivna intervallet.
  • Intervall: det här är den tid som förflutit sedan senaste clerk anmäldes mätt i millisekunder.
Du kan använda detta meddelande förutom RING_BUFFER_RESOURCE_MONITOR transaktioner från tidpunkten då meddelandet för att identifiera källan för meddelande om lite ledigt minne.Mer information om hur du tolkar RING_BUFFER_RESOURCE MONITOR. finns på följande MSDN-blogg:Mer information om hur SQL Server lyssnar och svarar för minne och om aktiviteten Resursövervakaren och felsöka minnesrelaterade prestandaproblem i SQL Server finns i följande artiklar i MSDN blogg:

Status


Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet ”gäller”. Det här problemet korrigerades först i SQL Server 2008 Service Pack 2 för SQL Server 2008.This problemet korrigerades först i SQL Server 2008 R2 Service Pack 1 för SQL Server 2008 R2.