如何为多个SQL Server实例配置内存?


9

我们有一组在同一虚拟服务器上运行的SQL Server实例(2008 R2)。每个实例代表我们开发周期中的一个阶段(Dev / Test / Stage / etc。)。实例在任何给定时间都必须处于联机状态,但是负载往往一次只能隔离到一个实例,具体取决于我们在发布生命周期中所处的位置。

SQL Server似乎抢占并保留了我们设置为最大值的任何内存量。我想知道是否可以通过任何方式将实例配置为“智能”的内存消耗,以使它们在需要时不会互相阻碍获取内存。


如果所有实例都需要随时处于联机状态,并且您设置了最大内存,则SQL Server不会释放它。当您说..负载一次被隔离到一个实例时,是否表示在其他实例上没有活动?此外,您在一个虚拟机上运行了多少个实例,该虚拟机的CPU /内存配置是什么?
Kin Shah 2013年

3
我是针对多实例集群编写的,在多实例集群中,如果故障转移导致在同一节点上出现多个实例,则需要调整内存。您可以在此处使用类似的方法,但可以根据需要执行存储过程,以便根据当前需要重新配置内存。您将无法将每个实例设置为自动执行此操作,除非您简单地将每个实例永久固定到最大内存(然后在需要时手动进行调整)。
亚伦·伯特兰

Answers:


7

SQL Server将使用尽可能多的内存(非常多),并且建议在每个实例上设置一个限制。默认设置为2147483647MB。

根据您的使用情况和自己的独特情况,您的设置可能会有所不同,但是通常一个好的起点是将最大服务器内存设置为75%到90%之间,具体取决于您有多少RAM。格伦·贝瑞共享一个很好的迹象,几年前这里

如果服务器上有多个活动实例,则可能必须在它们之间共享资源,例如,如果您有32GB的RAM和3个实例,则应为每个实例分配大约9500MB的内存。当您一次只使用一个实例时,其他实例将不会释放他们正在使用的RAM。您可以通过停止服务来释放其RAM。

当您运行其他应用程序/服务时,可能需要调整内存量以容纳它们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.