sql Server占用了我服务器RAM的87.5%.这最近造成了许多性能瓶颈,如速度慢.我研究过这个问题.我可以在互联网上找到的一个常见解决方案是设置sql Server的最大限制.这样做了,并获得了很多改进.我想知道为什么如果没有设置最大内存值,为什么sql Server会不断消耗资源
@R_403_323@
sql Server将消耗尽可能多的内存.默认情况下,该数字将包含计算机上100%的数字内存.这就是为什么你看到你所看到的.如果为sql Server提供24 GB内存,那么sql Server将尽力使用24 GB内存.然后你有sql Server和操作系统争夺资源,它总会导致性能不佳.
设置最大服务器内存配置限制时,您将限制sql Server可以为缓冲池分配的数量(实际上它存储数据页和过程高速缓存的位置). sql Server中还有其他内存职员,因此对于您的特定版本(2008 R2及更低版本),max server memory只控制缓冲池.但这始终是最大的内存消费者.
TechNet Reference on the Effects of min and max server memory
The min server memory and max server memory configuration options establish upper and lower limits to the amount of memory used by the buffer pool of the Microsoft sql Server Database Engine.
至于我应该为操作系统留出多少内存的问题,这是一个经常被争论的指标.这完全取决于服务器上运行的其他进程.只要它是一个真正专用的服务器(而且几乎从来没有这种情况).我喜欢为操作系统看到至少4 GB的内存(甚至更多用于大硬件盒).但最重要的是,监控有多少未使用的内存.如果你注意到很多可用的(可以通过perfmon监视)和未使用的内存(当然,总是为那些角落情况留下一个小缓冲区),那么要自由,给sql Server更多的内存.