Symptoms
Assume that you install the 64-bit version of Microsoft SQL Server 2014, 2016 or 2017 on a computer that’s running Windows Server 2012 or an earlier version of Windows operating system. When SQL Server uses up all the user-mode virtual address space, you may receive an out of memory error message in the SQL Server error log. Additionally, queries take a long time to finish execution, and the SOS_MEMORY_TOPLEVELBLOCKALLOCATOR wait occurs.
When you examine the following information points, you will find that there is very low available virtual address space:
-
DBCC MEMORYSTATUS – Process/System Counts section – Available Virtual Memory
-
DMV: sys.dm_os_process_memory – column virtual_address_space_available_kb
These values start off around 8 terabytes (TB) on an x64 process and continue to climb down and reach a few gigabytes (GB).
When you are at the stage where the available virtual address space is very low, queries that try to perform memory allocation may also encounter a wait type of CMEMTHREAD.
The following data points will continue to increase over time:
-
DMV: sys.dm_os_process_memory and sys.dm_os_memory_nodes – column virtual_address_space_reserved_kb
-
DBCC MEMORYSTATUS – Memory Manager section – VM Reserved
These values will typically increase in multiples of the “max server memory” value up to almost 8 TB.
Note Related issue is also described in KB 3074434.
Resolution
This update is included in the following cumulative updates for SQL Server:
Cumulative Update 4 for SQL Server 2017
Cumulative update 8 for SQL Server 2016 SP1
Cumulative Update 10 for SQL Server 2014 Service Pack 2
- Replace the RAM modules (most common solution)
- Set default or conservative RAM timings.
- Increase the RAM voltage levels.
- Decrease the CPU voltage levels.
- Apply BIOS update to fix incompatibility issues.
- Flag the address ranges as ‘bad’
Strike F1 key to continue, F2 to run setup utilities.
System gave memory error at bootup. F1 key allows bootup into windows. But system properties in Win. XP showed only 164MB of RAM is used.
Downgraded to bios version A07, no change in error
Downgraded to bios version AO5 (original bios version), still no change in error.
All bios changes were done with extreme caution.