KB4077105 — LABOJUMS: Kļūda par atmiņas trūkumu, ja SQL Server procesa virtuālās adreses vieta ir ļoti maza SQL Server

Attiecas uz
SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Pazīmes

Pieņemsim, ka instalējat Microsoft SQL Server 2014, 2016 vai 2017 64 bitu versiju datorā, kurā darbojas Windows Server 2012 vai vecāka operētājsistēmas Windows versija. Ja SQL Server izmanto visu lietotāja režīma virtuālās adreses vietu, SQL Server kļūdu žurnālā var tikt parādīts kļūdas ziņojums par atmiņas pietrūkumu. Turklāt vaicājumu izpilde aizņem ilgu laiku, un notiek SOS_MEMORY_TOPLEVELBLOCKALLOCATOR gaidīšana.

Izpētot šos informācijas punktus, jūs atklāsiet, ka virtuālajā adresē ir ļoti maz pieejamās vietas:

  • DBCC MEMORYSTATUS — sadaļa Process/System Counts — pieejamā virtuālā atmiņa
  • DMV: sys.dm_os_process_memory - kolonna virtual_address_space_available_kb

Šīs vērtības x64 procesā sākas ar aptuveni 8 terabaitiem (TB) un turpina kāpt uz leju, sasniedzot dažus gigabaitus (GB).

Kad virtuālās adreses vieta ir ļoti maza, vaicājumi, kas mēģina veikt atmiņas piešķiršanu, var saskarties arī ar gaidīšanas tipa CMEMTHREAD.

Tālāk norādīto datu punktu skaits laika gaitā turpinās pieaugt:

  • DMV: sys.dm_os_process_memory un sys.dm_os_memory_nodes - kolonna virtual_address_space_reserved_kb
  • DBCC MEMORYSTATUS - Atmiņas pārvaldnieka sadaļa - VM rezervēta

Šīs vērtības parasti palielinās līdz gandrīz 8 TB no vērtības "maksimālā servera atmiņa" lieluma.

Piezīme Saistītā problēma ir aprakstīta arī KB 3074434.

Risinājums

Šis atjauninājums ir iekļauts šādos SQL Server kumulatīvajos atjauninājumos:

SQL Server 2017 4. kumulatīvais atjauninājums

8. kumulatīvais atjauninājums operētājsistēmai SQL Server 2016 SP1

10. kumulatīvais atjauninājums SQL Server 2014 2. servisa pakotnei

Par SQL Server kumulatīvajiem atjauninājumiem:

Katrā jaunajā SQL Server kumulatīvajā atjauninājumā ir visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos SQL Server kumulatīvos atjauninājumus:

Jaunākais kumulatīvais atjauninājums SQL Server 2017

Jaunākais kumulatīvais atjauninājums SQL Server 2016

Jaunākais kumulatīvais atjauninājums SQL Server 2014

Piezīme Pēc šī atjauninājuma lietošanas ir jāpievieno izsekošanas karodziņš 8075 kā startēšanas parametrs, lai iespējotu šīs izmaiņas.

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".

Atsauces

Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.