![SQL Server 2008 R2 内存泄漏](https://linux22.com/image/576589/SQL%20Server%202008%20R2%20%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F.png)
我们正在从一台服务器迁移到另一台服务器。
我正在我们的新服务器上运行 SQL Server 数据库,旧服务器现在使用它作为 DB 服务器,目的是使其在 DNS 传播的同时从一台服务器平稳过渡到另一台服务器,这样就不会给任何人带来停机时间。
新服务器上目前没有运行任何其他程序,所有内容都是全新安装。
sqlserver.exe 进程的内存需求似乎在不断增加,这很可能是我的网站上的连接未正确关闭吗?还是 SQL Server 中存在任何已知的内存泄漏?我们每天收到大约 40k 的页面浏览量,而爬虫页面浏览量可能约为该数字的 5 倍。
总 DB MDF+LDF 大小相当小,只有 600mb。sqlservr.exe 的当前提交(KB)为 2,393,000。它以每秒或每两秒约 0.5MB 的速度增加。
如果这是因为我们的网站无法正常关闭连接,有什么方法可以清理旧的打开连接吗?除了显然修复根本原因之外,我们还能做什么?
答案1
我不是 SQL 内部专家,但据我所知,SQL 将使用您为其配置的 RAM 数量以及操作系统允许的 RAM 数量。缓存比数据库本身还多,例如执行计划 http://msdn.microsoft.com/en-us/library/ms181055.aspx
根据经验法则,您的 SQL 内存应按以下方式配置:
用操作系统 RAM 减去 2GB 或 10%(取较大者)。这应该是“最大”内存。接下来,将最小内存设置为操作系统设置的一半。根据 Brent Ozar 的说法http://www.brentozar.com/archive/2008/03/sql-server-2005-setup-checklist-part-1-before-the-install/