Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

După ce aplicați această actualizare, trebuie să adăugați semnalizatorul Trace-T8075 ca parametru de pornire pentru a activa această modificare.

Simptome

Atunci când efectuați o interogare într-o versiune 64 de Microsoft SQL Server 2012, primiți un mesaj de eroare out-of-Memory care seamănă cu următorul în Jurnalul de erori SQL Server:

Pagini de alocare nereușite: FAIL_PAGE_ALLOCATION 513

Interogările durează mult timp pentru a termina execuția și a întâlni SOS_MEMORY_TOPLEVELBLOCKALLOCATOR așteaptă. Atunci când Examinați următoarele puncte de informații, veți descoperi că există un spațiu de adrese virtuale foarte redus:

  • DBCC MEMORYSTATUS-proces/sistem Counts section-memorie virtuală disponibilă

  • DMV: sys.dm_os_process_memory-coloana virtual_address_space_available_kb

Aceste valori încep cu aproximativ 8 TB (TB) într-un proces x64 și continuă să urce și să ajungă la câțiva gigaocteți (GO).  Atunci când sunteți în stadiul în care spațiul de adrese virtuale disponibil este foarte scăzut, interogările care încearcă să efectueze alocarea memoriei pot, de asemenea, să întâmpine un tip de așteptare de CMEMTHREAD. Următoarele puncte de date vor continua să crească în timp:

  • DMV: sys.dm_os_process_memory și sys.dm_os_memory_nodes-coloana virtual_address_space_reserved_kb

  • DBCC MEMORYSTATUS-secțiunea Manager de memorie-VM rezervat

Aceste valori vor crește, de obicei, în multipli din valoarea "Max Server Memory" de până la aproape 8 TB.

Cauză

Atunci când procesul de SQL Server a ajuns la starea în care memoria totală a serverului = memorie server țintă = memorie de server Max, există politici în SQL Server Memory Manager pentru a permite alocărilor noi să solicite mai multe pagini de 8 KB pentru a reuși temporar. Modelul de alocare repetat sub această condiție poate cauza fragmentarea blocurilor de memorie și a consumului de spațiu de adrese virtuale. Dacă acest proces se repetă de mai multe ori, spațiul de adrese virtuale SQL Server va fi epuizat și veți observa simptomele care au fost menționate mai sus.

Rezolvare

Informații despre actualizarea cumulativă

Problema a fost remediată pentru prima dată în următoarea actualizare cumulativă de SQL Server.

 

Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Vă recomandăm să descărcați și să instalați cele mai recente actualizări cumulative pentru SQL Server:

Această remediere rapidă previne atât memoria, cât și reducerea continuă a spațiului de adrese virtuale disponibile pe care le puteți întâmpina.

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.

Mai multe informații

  • Windows 2012 R2 permite spațiului de adrese virtuale să crească cât mai mare 128 TB. Prin urmare, este posibil să nu observați această problemă în medii Windows 2012 R2. Pentru mai multe informații, consultați următorul subiect în Windows Dev Center:limite de memorie pentru versiunile Windows și Windows Server

  • Dacă vedeți creștere continuă în spațiul de adrese virtuale chiar și după ce aplicați remedierea, puteți determina ce interogări sau operațiuni solicită bucăți mari de memorie utilizând Page_allocated eveniment extins. Un exemplu de script arată astfel:

    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

    De obicei, acestea sunt backupuri în jurnal și operațiuni de întreținere index, care apar frecvent.

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×