Korriger: Mer minne når det virtuelle adresseområdet i SQL Server-prosessen er svært lite tilgjengelig minne

VIKTIG: Denne artikkelen ble oversatt med maskinoversettelsesprogramvare fra Microsoft og muligens redigert av Microsoft Community via CTF-teknologi i stedet for av en oversetter. Microsoft tilbyr både menneskelig oversatte og maskinoversatte/Community-redigerte artikler, slik at du får tilgang til alle artiklene i vår Knowledge Base på ditt eget språk. En maskinoversatt eller Community-redigert artikkel er imidlertid ikke alltid perfekt. Den kan inneholde feil i vokabular, syntaks eller grammatikk, mye likt en fremmedspråklig som forsøker å snakke språket ditt. Microsoft har ikke ansvar for unøyaktige opplysninger, feil eller skade forårsaket av feilaktig oversettelse av innholdet eller kundenes bruk av informasjonen. Microsoft oppdaterer jevnlig maskinoversettelsesprogramvaren og -verktøyene for å forbedre redigering av maskinoversatte tekster.

Den engelske versjonen av denne artikkelen er den følgende: 3074434
Merknad
Når du har installert denne oppdateringen, må du legge til den Spor flagg - T8075 som en parameter for oppstart å aktivere denne endringen.
Symptom
Når du kjører en spørring i en 64-biters versjon av Microsoft SQL Server-2014 eller Microsoft SQL Server 2012, får du en for minne-feilmelding som ligner på følgende i SQL Server-feilloggen:

Kan ikke tildele sider: FAIL_PAGE_ALLOCATION 513

Spørringer ta lang tid å fullføre kjøring og støte SOS_MEMORY_TOPLEVELBLOCKALLOCATOR venter.

Når du undersøker følgende informasjon punkt, vil du finne at det er svært lite tilgjengelige virtuelle adresseområdet:

  • DBCC MEMORYSTATUS - prosessen og systemfiler teller delen - tilgjengelig virtuelt minne
  • DMV: sys.dm_os_process_memory - virtual_address_space_available_kb for kolonnen
Disse verdiene begynner rundt 8 terabyte (TB) på en x64 behandler og fortsetter å gå noen trinn opp, og nå et par gigabyte (GB).

Når du er på stadiet der det tilgjengelige virtuelle adresseområdet er svært lav, spørringer som prøver å utføre minne tildeling kan også oppstå en Vent type CMEMTHREAD.

Følgende datapunktene fortsetter å øke over tid:
  • DMV: sys.dm_os_process_memory og sys.dm_os_memory_nodes - kolonnen virtual_address_space_reserved_kb
  • DBCC MEMORYSTATUS - minnebehandling delen - VM reservert

Disse verdiene vanligvis øker i trinn på "Maks server minne"-verdien til nesten 8 TB.
Årsak
Når SQL Server-prosessen har nådd statusen der totalt minne på Server = minne på Server = Maks serverminnet er policyer i minnebehandling for SQL Server slik at nye tildelinger be om flere 8 KB sider skal lykkes midlertidig. Gjentatte tildeling mønster under slike betingelse kan føre til at fragmentering av minneblokker og forbruk av virtuelt adresseområde. Hvis denne prosessen gjentas mange ganger, vil bli oppbrukt det virtuelle adresseområdet i SQL Server, og du vil oppdage at symptomene som ble nevnt tidligere.
Løsning

Informasjon om hurtigreparasjon

Hvis du vil løse dette problemet, installerer du hurtigreparasjonen fra Korriger: Feil ved den lagrede prosedyren kaller en annen lagret prosedyre i koblet server i SQL Server-2014.

Forutsetninger

Du må ha Kumulativ oppdatering 3 for SQL Server 2014 Service Pack 1 installert for å bruke denne hurtigreparasjonen.

Legg merke til

Når du har installert denne oppdateringen, må du legge til den Spor flagg - T8075 som en parameter for oppstart å aktivere denne endringen.

Informasjon om kumulativ oppdatering

Problemet ble først løst i den følgende kumulative oppdateringen av SQL Server.

Anbefaling: Installere den nyeste kumulative oppdateringen for SQL Server
Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Vi anbefaler at du laster ned og installerer de nyeste kumulative oppdateringene for SQL Server:


Denne hurtigreparasjonen forhindrer at både ute av minne og kontinuerlig reduksjon av tilgjengelige virtuelle adresseområdet som kan oppstå.
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Mer informasjon
  • Windows 2012 R2 lar virtuelle adresseområdet til å vokse så stor som 128 TB. Derfor kan du ikke merke dette problemet i Windows 2012 R2 miljøer. Hvis du vil ha mer informasjon, se følgende emne i Windows Utviklingssenter:

    Minnegrenser for Windows og Windows Server-versjoner
  • Hvis du ser en kontinuerlig vekst i virtuelle adresseområdet selv etter at du har installert hurtigreparasjonen, kan du bestemme hvilke spørringer eller operasjoner ber om store mengder minne ved hjelp av Page_allocated Utvidet hendelse. Et eksempelskript som ser slik ut:

    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
    Dette er vanligvis Gjenopprettingsmodellen og indeks vedlikeholdsoperasjoner som forekommer ofte.

Advarsel: Denne artikkelen er autooversatt

Egenskaper

Artikkel-ID: 3074434 – Forrige gjennomgang: 10/10/2016 02:13:00 – Revisjon: 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 KbMtno
Tilbakemelding