- You install Microsoft SQL Server 2012 on a server.
- The CPU on the server has many cores. For example, the CPU has 64 or 128 cores, and it includes a non-uniform memory access (NUMA) configuration.
- The server has lots of memory. For example, the server has 256 gigabytes (GB) or 1 terabyte (TB) of memory.
- The Resource Monitor thread keeps spinning, and there is no load on the server.
Note This issue occurs only when the "max server memory" option is set to a low value.
More InformationSQL Server Memory Manager has been redesigned, and it now provides page allocations for the other components. More specifically, the "max server memory" option controls the volume of memory that SQL Server Memory Manager allocates to other components. In SQL Server 2005 and later versions of SQL Server, the target memory calculation occurs during the SQL Server startup operation. Each NUMA node receives an equal amount of memory.
The startup memory for the SOSMemoryManager clerk on a 1-TB 8-node box is about 1 GB when the server is not using locked pages. When the server is using locked pages, the clerk requires additional memory to maintain pointers for the operating system pages. In this situation, all the memory is allocated from Memory Node 0 in SQL Server Memory Manager.
For example, the memory requirements of a 1 TB physical memory box are as follows:
- Node 0 requires about 4 GB of memory when Lock Pages In Memory (LPIM) is enabled.
- Node 0 requires about 1 GB of memory when LPIM is not enabled.
Therefore, Node 0 requires more than 4 GB of memory when LPIM is enabled (or 1 GB when LPIM is not enabled) during the SQL Server startup operation. However, a box that has four NUMA nodes requires 16 GB of memory (4 NUMA nodes * 4 GB per node) during the startup operation. Additionally, a box that has eight NUMA nodes requires 32 GB of memory during the startup operation.
To determine whether you are experiencing this issue, run the following Dynamic Management View (DMV):
SELECT * FROM sys.dm_exec_requests WHERE COMMAND = 'RESOURCE MONITOR'
If one of the resource monitors is constantly accumulating CPU while the other resource monitors are idle, you are experiencing this issue. In this situation, the idle resource monitors are not loaded.
Cumulative update information
Cumulative Update 3 for SQL Server 2012 SP1The fix for this issue was first released in Cumulative Update 3. For more information about how to obtain this cumulative update package for SQL Server 2012 SP1, click the following article number to view the article in the Microsoft Knowledge Base:
- Enable Trace Flag 8015 to disable auto-detection and NUMA setup.
- Set the "max server memory" option to a large value.
Article ID: 2813214 - Last Review: Apr 12, 2013 - Revision: 1