限制MS SQL SERVER的RAM消耗

时间:2009-03-08 16:47:40

标签: sql-server-2005 deployment memory-management

我刚刚在远程主机上将一个小型Web应用程序投入生产。在它运行一段时间后,我注意到MS SQL Server开始消耗服务器上的大部分RAM,使IIS和我的应用程序匮乏。

我尝试更改“服务器最大内存”设置,但最终内存使用率开始超过此设置。使用活动监视器我已经确定我没有留下开放的连接或明显的东西,所以我猜它在缓存,物化视图等。

我开始相信这种设置并不意味着我认为这意味着什么。我注意到,如果我只是重新启动服务器,内存消耗的过程重新开始,而不会对应用程序产生任何负面影响 - 页面加载没有意外,所有检索工作。

必须有一种更好的方法来控制sql或强制它将一些内存释放回系统????

2 个答案:

答案 0 :(得分:2)

来自MS知识库:

  

请注意最大服务器内存选项   仅限制SQL Server的大小   缓冲池。最大服务器内存   选项不限制剩余   SQL Server无保留的内存区域   留下其他的分配   扩展存储等组件   过程,COM对象,非共享   DLL,EXE和MAPI组件。   由于前面的分配,   这对SQL Server来说是正常的   私有字节超过最大服务器   内存配置。

您是否正在使用任何可能在SQL Server控件之外泄漏内存的扩展存储过程,.NET代码等?

关于内存/地址空间使用的更多讨论here

答案 1 :(得分:1)

通常我建议将最大服务器内存设置为安装的物理内存以下的几个Gigs。

如果您需要在服务器上安装IIS和应用程序服务器,那么您将希望为SQL Server提供更少的内存。