症状
在 NUMA 环境中,Microsoft SQL Server 遇到一个或多个下面的性能问题︰
-
SQL Server 进程遇到过多的 CPU 使用率。
-
查询需要很长时间才能完成。
-
应用程序或 SQL Server 代理作业遇到查询超时或连接超时。
-
SQL Server 进程会重新启动群集服务。
此外,您可能会遇到下列症状︰
-
SOS_PHYS_PAGE_CACHE的高的值查询sys.dm_os_wait_stats动态管理视图 (DMV) 时等待类型
-
CMEMTHREAD的高的值等待类型和SOS_SUSPEND_QUEUE自旋锁时查询sys.dm_os_spinlock_stats参差不齐
解决方案
累积更新信息
第一次修复该问题的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 的最新累积更新:
修补程序信息
可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。
如果此修复程序可供下载,则在此知识库文章顶部"提供修补程序下载"部分。如果未显示此部分,将申请提交到 Microsoft 客户服务和支持,以获取此修复程序。
注意:如果发生其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。通常的支持费用将适用于其他支持问题和不计入该特定修补程序的问题。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰
http://support.microsoft.com/contactus/?ws=support注意:"修补程序下载可用"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。
重要:此修补程序安装在 NUMA 系统上,而不考虑 SQL Server 相似性掩码设置任何 SQL Server 实例的建议。此修补程序解决 SQL Server 内存管理器的离开处理性能瓶颈。
第一次修复该问题的SQL Server累积更新包
解决方法
要解决这些问题,请增加应用程序的登录和查询超时值。
注意:在它的影响,此替代方法可能会受到限制。我们建议您应用此修补程序解决"症状"一节中描述的问题。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
详细信息
当 Microsoft SQL Server 内存管理器分配内存中非统一内存访问 (NUMA) 节点-启用的环境,Windows 可以从分配内存 (称为"离开"或"外部"页面) 的两个本地和远程节点直到所需的目标到达每个节点的。由于这些"离开页面"并非理想从性能的角度看,SQL Server 进程试图将离开缓冲区分配给正确的内存节点或释放这些页返回到操作系统。"离开处理"可以大量占用 CPU 并导致增加 CPU 使用率期间批率降低。
参考资料
有关如何理解外页的概念的详细信息,请转到以下 MSDN 博客张贴内容网站︰