FIX: Fout onvoldoende geheugen wanneer de virtuele adresruimte van de SQL Server-proces is zeer weinig geheugen beschikbaar

BELANGRIJK: Dit artikel is vertaald door middel van automatische vertalingssoftware van Microsoft en is mogelijk nabewerkt door de Microsoft Community via CTF-technologie (Community Translation Framework) of door een menselijke vertaler. Microsoft biedt zowel automatisch vertaalde, door mensen vertaalde en door de community nabewerkte artikelen aan, zodat er in meerdere talen toegang is tot alle artikelen in onze Knowledge Base. Een vertaald of bewerkt artikel kan fouten bevatten in vocabulaire, syntaxis of grammatica.. Microsoft is niet verantwoordelijk voor eventuele onjuistheden, fouten of schade ten gevolge van een foute vertaling van de inhoud van een bericht of het gebruik van deze vertaalde berichten door onze klanten.

De Engelstalige versie van dit artikel is de volgende: 3074434
Opmerking
Nadat u deze update toepast, hebt u toevoegen de traceren vlag - T8075 als een opstartparameter voor het inschakelen van deze wijziging.
Symptomen
Wanneer u een query in een 64-bits versie van Microsoft SQL Server 2014 of Microsoft SQL Server 2012 uitvoert, wordt een foutbericht-geheugen dat lijkt op het volgende in het foutenlogboek van SQL Server:

Kan niet toewijzen van pagina's: FAIL_PAGE_ALLOCATION, 513

Query's duren lang uitvoering te voltooien en wacht SOS_MEMORY_TOPLEVELBLOCKALLOCATOR optreden.

Wanneer u de volgende punten van de gegevens bekijkt, vindt u dat er weinig beschikbare virtuele adresruimte is:

  • Het beschikbare virtuele geheugen DBCC MEMORYSTATUS - proces/systeem telt sectie-
  • DMV: sys.dm_os_process_memory - virtual_address_space_available_kb van de kolom
Deze waarden beginnen ongeveer 8 terabytes (TB) op een x64 verwerken en verder naar beneden klimt en enkele gigabytes (GB) bereiken.

Wanneer u in het stadium waarin de beschikbare virtuele adresruimte is zeer weinig, query's die probeert uit te voeren geheugen toewijzing ondervinden ook een type wachten op CMEMTHREAD.

De volgende gegevenspunten verder zullen stijgen na verloop van tijd:
  • DMV: de sys.dm_os_process_memory en de sys.dm_os_memory_nodes - kolom virtual_address_space_reserved_kb
  • DBCC MEMORYSTATUS - sectie Memory Manager - VM gereserveerd

Deze waarden wordt meestal vergroot in veelvouden van de waarde 'maximale servergeheugen' tot bijna 8 TB.
Oorzaak
Wanneer de SQL Server-proces de toestand heeft bereikt waarbij de totale servergeheugen = geheugen van de doelserver = maximaal servergeheugen, er zijn beleid in SQL Server geheugenbeheer waarmee nieuwe toewijzingen in meerdere KB voor 8 pagina's tijdelijk succes aanvragen. Van herhaalde toewijzingspatroon onder deze voorwaarde kan veroorzaken fragmentatie van de geheugenblokken en het gebruik van virtuele adresruimte. Als dit proces wordt vaak herhaald, wordt de virtuele adresruimte van SQL Server worden uitgeput en zult u de symptomen die eerder zijn vermeld.
Oplossing

Informatie over de hotfix

Installeer de hotfix uit dit probleem op te lossen FIX: Foutbericht wanneer u de opgeslagen procedure roept de opgeslagen procedure op gekoppelde server in SQL Server 2014.

Vereisten

U moet hebben. Cumulatieve Update 3 voor SQL Server 2014 Service Pack 1 geïnstalleerd om deze hotfix te kunnen.

Aankondiging

Nadat u deze update toepast, hebt u toevoegen de traceren vlag - T8075 als een opstartparameter voor het inschakelen van deze wijziging.

Cumulatieve update informatie

Het probleem is in eerste instantie opgelost in de volgende cumulatieve update van SQL Server.

Aanbeveling: Installeer de meest recente cumulatieve update voor SQL Server
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingscorrecties die zijn opgenomen in de vorige cumulatieve update. Het is raadzaam dat u downloadt en installeert de meest recente cumulatieve updates voor SQL Server:


Deze hotfix voorkomt dat zowel de onvoldoende geheugen en een voortdurende vermindering van de beschikbare virtuele adresruimte die kan optreden.
Status
Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.
Meer informatie
  • Windows 2012 R2 kunnen virtuele adresruimte te groeien zo groot is als 128 TB. Dus niet mogelijk dit probleem in Windows 2012 R2-omgevingen. Zie het volgende onderwerp in de Dev Center van Windows voor meer informatie:

    Geheugenlimieten voor versies van Windows en Windows Server
  • Als er continue groei in virtuele adresruimte zelfs nadat u de correctie hebt toegepast, kunt u vaststellen welke query's of bewerkingen grote delen van het geheugen aanvraagt met behulp van de Page_allocated uitgebreide gebeurtenis. Een voorbeeldscript ziet er zo uit:

    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
    Dit zijn meestal-ups en index onderhoudsbewerkingen, die vaak voorkomen.

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 3074434 - Laatst bijgewerkt: 10/10/2016 02:13:00 - Revisie: 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 KbMtnl
Feedback