DetailPage-MSS-KB

Microsoft small business knowledge base

Article ID: 2813214 - Last Review: April 12, 2013 - Revision: 3.0

Microsoft distributes Microsoft SQL Server 2012 Service Pack 1 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2012 Service Pack 1 fix release.

On This Page

Symptoms

Consider the following scenario:
  • 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.
In this scenario, a CPU spike occurs.

Note This issue occurs only when the "max server memory" option is set to a low value.

Cause

This issue occurs because SQL Server Memory Manager requires lots of memory to set up the infrastructure for dynamic memory management.

More Information

SQL 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.

Resolution

Cumulative update information

Cumulative Update 3 for SQL Server 2012 SP1

The 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:
2812412  (http://support.microsoft.com/kb/2812412/ ) Cumulative update package 3 for SQL Server 2012 Service Pack 1
Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2012 SP1 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
2772858  (http://support.microsoft.com/kb/2772858/ ) The SQL Server 2012 builds that were released after SQL Server 2012 Service Pack 1 was released

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

Workaround

To work around this issue, follow these steps:
  • Enable Trace Flag 8015 to disable auto-detection and NUMA setup.
  • Set the "max server memory" option to a large value.

References

For more information about the Incremental Servicing Model for SQL Server, click the following article number to view the article in the Microsoft Knowledge Base:
935897  (http://support.microsoft.com/kb/935897/ ) An Incremental Servicing Model is available from the SQL Server team to deliver hotfixes for reported problems
For more information about the naming schema for SQL Server updates, click the following article number to view the article in the Microsoft Knowledge Base:
822499  (http://support.microsoft.com/kb/822499/ ) Naming schema for Microsoft SQL Server software update packages
For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684  (http://support.microsoft.com/kb/824684/ ) Description of the standard terminology that is used to describe Microsoft software updates

Applies to
  • Microsoft SQL Server 2012 Service Pack 1
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Express
  • SQL Server 2012 Enterprise Core
Keywords: 
kbqfe kbfix kbsurveynew kbexpertiseadvanced KB2813214
Share
Additional support options
Ask The Microsoft Small Business Support Community
Contact Microsoft Small Business Support
Find Microsoft Small Business Support Certified Partner
Find a Microsoft Store For In-Person Small Business Support