症状
在 NUMA 环境中,Microsoft SQL Server 遇到以下一个或多个性能问题:
- SQL Server 进程遇到 CPU 使用率过高的问题。
- 查询需要很长时间才能完成。
- 应用程序或 SQL Server 代理作业遇到查询超时或连接超时。
- 群集服务重启 SQL Server 进程。
此外,可能会遇到以下症状:
- 查询 DMV) (sys.dm_os_wait_stats 动态管理视图时,SOS_PHYS_PAGE_CACHE等待类型的提升值
- 查询 sys.dm_os_spinlock_stats DMV 时 CMEMTHREAD 等待类型和SOS_SUSPEND_QUEUE旋转锁的提升值
解决方法
累积更新信息
此问题已首先在 SQL Server 的以下累积更新中修复。
SQL Server 2014 累积更新 2 /en-us/help/2967546
SQL Server 2014 累积更新 1 /en-us/help/2931693
SQL Server 2012 SP1 的累积更新 9 /en-us/help/2931078
关于 SQL Server 的累积更新
SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
修补程序信息
Microsoft 提供了一个受支持的修补程序。 但此程序只用于解决本文中提到的问题。 仅将此修补程序应用于遇到此特定问题的系统。
如果修补程序可供下载,则本知识库文章顶部的“修补程序下载可用”部分。 如果此部分不存在,请向 Microsoft 客户服务和支持部门提交请求以获取该修补程序。
注意 如果发生其他问题或需要进行任何故障排除,您应该另行创建服务请求。 通常的支持费用将应用于不符合此特定修补程序条件的其他支持问题。 若要获取 Microsoft 客户服务和支持部门的完整电话号码列表或另行创建服务请求,请访问以下 Microsoft 网站:
/contactus/?ws=support 注意 “修补程序下载可用”窗体显示了修补程序的可用语言版本。 如果您找不到需要的语言,则说明该语言版本的修补程序未提供。
重要说明:无论 SQL Server 关联掩码设置如何,都建议对安装在 NUMA 系统上的任何 SQL Server 实例使用此修补程序。 此修补程序解决了 SQL Server 内存管理器中的 AWAY 处理性能瓶颈。
此问题已首先在 SQL Server 的以下累积更新中修复。
解决方法
若要解决这些问题,请增加应用程序的登录和查询超时值。
注意 此解决方法的效果可能有限。 建议应用修补程序来解决“症状”部分中描述的问题。
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
详细信息
当 Microsoft SQL Server 的内存管理器在启用 NUMA) 的环境中为非统一内存访问 (节点分配内存时,Windows 可以从本地和远程节点分配内存 (称为“离开”或“外部”页面,) 直到达到每个节点的所需目标。 由于从性能角度来看,这些“离开页面”并不理想,因此 SQL Server 进程会尝试将离开缓冲区分配给适当的内存节点,或将这些页面释放回操作系统。 这种“离开处理”可能会占用大量 CPU,并在 CPU 使用率增加期间导致批率降低。
参考资料
有关如何理解外语页面概念的详细信息,请转到以下 MSDN 博客文章网站: