Logg på med Microsoft
Logg på, eller opprett en konto.
Hei,
Velg en annen konto.
Du har flere kontoer
Velg kontoen du vil logge på med.

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

Symptomer

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.

Oppløsning

Informasjon om hurtigreparasjon

Hvis du vil løse dette problemet, installerer du hurtigreparasjonen fra Løs: feil når den lagrede prosedyren kaller en annen lagret prosedyre på koblet server i SQL Server-2014.

Forutsetninger

Du må ha 3 for kumulative oppdateringen 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.

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".

Hvis du vil ha 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 den utvidede Page_allocated -hendelsen. 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.

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.

Var denne informasjonen nyttig?

Hvor fornøyd er du med språkkvaliteten?
Hva påvirket opplevelsen din?
Når du trykker på Send inn, blir tilbakemeldingen brukt til å forbedre Microsoft-produkter og -tjenester. IT-administratoren kan samle inn disse dataene. Personvernerklæring.

Takk for tilbakemeldingen!

×