Šiuo metu esate neprisijungę, laukiama, kol iš naujo prisijungsite prie interneto

NUSTATYTI: Atminties klaidos virtualusis adresas vietos SQL serverio procesas yra labai mažai atminties iš

SVARBU: šis straipsnis išverstas naudojant „Microsoft“ mašininio vertimo programinę įrangą ir gali būti pataisytas naudojant „Community Translation Framework“ (CTF) technologiją. „Microsoft“ siūlo mašinos išverstus ir po to bendruomenės suredaguotus straipsnius, taip pat žmogaus išverstus straipsnius siekdama suteikti prieigą prie visų savo žinių bazės straipsnių daugeliu kalbų. Mašinos išverstuose ir vėliau paredaguotuose straipsniuose gali būti žodyno, sintaksės ir / arba gramatikos klaidų. „Microsoft“ neatsako už jokius netikslumus, klaidas arba žalą, patirtą dėl neteisingo turinio vertimo arba mūsų klientų naudojimosi juo. Daugiau apie CTF žr. http://support.microsoft.com/gp/machine-translation-corrections.

Spustelėkite čia, norėdami pamatyti šio straipsnio versiją anglų kalba: 3074434
Pastaba
Pritaikius šį naujinimą, turite įtraukti į sekimo vėliavėlė - T8075 kaip paleisties parametras, kad šis pakeitimas.
Požymiai
Kai vykdote užklausą, Microsoft SQL Server 2014 m. arba Microsoft SQL Server 2012 64 bitų versiją, gaunate atminties stokos klaidos pranešimą, panašų į šį SQL serverio klaidų žurnale:

Nepavyko priskirti puslapiai: FAIL_PAGE_ALLOCATION 513

Užklausos vykdomos ilgai baigti vykdymo ir susiduria su SOS_MEMORY_TOPLEVELBLOCKALLOCATOR laukia.

Kai peržiūrėsite informacijos punktai, rasite, kad yra labai mažai galima virtualios erdvės adresų:

  • DBCC MEMORYSTATUS - procesas/sistemos skaičiuoja skyriuje - virtualiosios atminties
  • DMV: sys.dm_os_process_memory - stulpelio virtual_address_space_available_kb
Šias reikšmes pradėti apie 8 terabaitai (TB) x 64 procesas ir toliau nulipti ir pasiekti keletą gigabaitų (GB).

Kai būsite etape, kur galima virtualusis adresas vietos baitų yra labai mažas, užklausas, bandote atlikti atminties paskirstymo gali susidurti laukimo tipo CMEMTHREAD.

Duomenų punktai toliau didės laikui bėgant:
  • DMV: sys.dm_os_process_memory ir sys.dm_os_memory_nodes - stulpelio virtual_address_space_reserved_kb
  • DBCC MEMORYSTATUS - atminties tvarkytuvas skyriuje - VM yra rezervuoti

Paprastai šias reikšmes didės iki beveik 8 TB "maks serverio atmintis" vertės.
Priežastis
Kai SQL serverio procesas pasiekė būseną, kai viso serverio atmintis = paskirties serverio atmintis = maks serverio atmintis, yra strategijos SQL serverio atminties tvarkytuvas ir leiskite naują paskirstymas prašyti kelių puslapių 8 KB sėkmingai laikinai. Pakartotinio paskyrimo modelio tokia sąlyga gali sukelti fragmentavimo atminties blokus ir vartojimo virtual ribos. Jei šis procesas kartojamas tiek kartų, SQL serverio virtualusis adresas vietos bus išnaudotas, ir pastebite požymius, kuris buvo minėta.
Sprendimas

Karštųjų pataisų informacija

Norėdami išspręsti šią problemą, įdiekite karštąsias pataisas iš NUSTATYTI: Klaida, kai jūsų Išsaugota procedūra ragina susijęs serverio SQL Server 2014 m. kitą Išsaugota procedūra.

Būtinosios sąlygos

Turi būti Kaupiamasis naujinimas 3 SQL Server 2014 1 pakeitimų paketo norint taikyti šias karštąsias pataisas.

Kaupiamojo naujinimo informacija

Šį kaupiamąjį naujinimą SQL serverio pirmą kartą buvo išspręsta problema.

Rekomendacija: Įdiegti naujausią kaupiamąjį naujinimą SQL Server
SQL serverio kiekvieną naują Kaupiamasis naujinimas yra visos karštosios ir naujausios saugos pataisos, kurios buvo įtrauktos į ankstesnio kaupiamojo naujinimo. Rekomenduojame atsisiųsti ir įdiegti SQL Server kaupiamieji naujinimai:


Ši karštoji pataisa neleidžia kilti iš atminties ir nuolat sumažinti galimų virtual ribos gali kilti.
Būsena
„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.
Daugiau informacijos
  • Windows 2012 R2 leidžia virtualios erdvės adresų didėja iki 128 TB. Todėl jūs galite nepastebėti problemai Windows 2012 R2 aplinkoje. Jei norite gauti daugiau informacijos, žr. šią temą Windows kūrėjų centre:

    Atminties ribos Windows "ir" Windows Server pranešimai
  • Jei nuolat didėjimą virtualių adresų srities net tada, kai pritaikote pataisyti, galėsite nustatyti, kokia užklausos arba operacijų prašo didelius atminties kiekius naudojant toliau Page_allocated Išplėstinis įvykių. Scenarijaus pavyzdys atrodo taip:

    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
    Paprastai tai yra žurnalo atsargines kopijas ir rodyklės priežiūros darbus, kurie dažnai.

Įspėjimas: šis straipsnis išverstas automatiškai

Savybės

Straipsnio ID: 3074434 – Paskutinė peržiūra: 01/27/2016 01:50:00 – Peržiūra: 7.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 KbMtlt
Atsiliepimai