tat*_*chi 16 sql-server sql-server-2014
我在 Windows Server 2012 上使用 SQL Server 2014 - 12.0.2269.0 (X64),但遇到了一些内存问题。当我运行一个执行相当“繁重”计算的存储过程时,我在大约 10 分钟后收到一个错误:
资源池“默认”中的系统内存不足,无法运行此查询。
我的 SQL Server 有多个数据库(比如 15 个,但它们并不总是同时使用)。我查看了 SQL Server 日志文件(在我得到错误之后),我看到了很多这样的行:
2015-12-17 12:00:37.57 spid19s 由于资源池“default”内存不足,不允许为数据库“Database_Name”分配页面。有关详细信息,请参阅“ http://go.microsoft.com/fwlink/?LinkId=330673 ”。
在日志中生成一个报告,其中包含每个组件使用的内存(我认为)。如果我正确解释了报告,我们可以看到MEMORYCLERK_SQLBUFFERPOOL
. 您可以在此处找到该报告:http : //pastebin.com/kgmk9dPH
我还生成了一个带有图表的报告,该图表显示了相同的“结论”:
这可能是另一个有用的报告:
请注意,我还在日志中看到了此错误:
2015-12-17 12:04:52.37 spid70 由于数据库内存压力导致页面分配失败:FAIL_PAGE_ALLOCATION 8
以下是有关服务器内存的一些信息:
服务器上的总内存:16 Gb
分配给 SQL 服务器的内存:12288 Mb
使用中的物理内存(来自sys.dm_os_process_memory
):9287 Mb
如果它可以提供帮助,则该服务器不会托管任何 SharePoint 数据库。
虽然这可能不是您问题的确切答案,但无论如何我都会发布它,希望它可以在某种程度上帮助您。
你所看到的不是,MEMORYCLERK_SQLBUFFERPOOL
而是MEMORYCLERK_SQLLOGPOOL
占据了所有的记忆。
SQL 2012 存在一个已知问题SQL Server 2012 遇到内存不足错误。即使您运行的是 2014 年,您也有可能遇到同样的问题(即使我找不到 2014 年的连接项)。
2014 年和 2012 年也存在这个已知问题,涉及索引重建和always on
. 您没有指定您正在使用它,但可能相同的错误还有其他触发器:FIX:当您为 SQL Server 中的表重建索引时,SQL 缓存内存减少且 CPU 使用率增加
所以我现在最好的建议是更新到最新的 CU,看看它是否仍然发生,因为MEMORYCLERK_SQLLOGPOOL
最近有一些修复。由于您运行的 RTM 仅具有 2 个有意义的安全修复程序,因此有一个 SP1 + 多个 CU 可用。
由于本文MEMORYCLERK_XTP
使用的内存使用率也相当高,in-memory OLTP
因此可以帮助您进行故障排除:Monitor and Troubleshoot Memory Usage
归档时间: |
|
查看次数: |
36049 次 |
最近记录: |