为SQL Server实例分配资源-dba

时间:2013-12-16 14:16:51

标签: database-administration

我有一个关于为SQL Server 2008 R2分配资源的问题。我们有一台物理服务器Windows 2008 R2,其中包含三个用于生产,测试和开发的SQL Server 2008 R2安装。该服务器具有64GB的RAM和24个内核。如果我们想为特定实例分配特定数量的资源,我们可以这样做吗?例如,我们希望为生产实例分配32 GB和12个内核,并为测试和开发分配12 GB和6个内核。

由于所有三个实例都位于同一物理服务器上,因此我们不希望测试和开发实例消耗的资源超出我们的预期。有没有办法在服务器或SQL Server中设置它?

1 个答案:

答案 0 :(得分:0)

你有一些选择。我看到的三个选项是:

(1)对同一台物理计算机上的每台服务器使用VM,并根据需要为VM分配资源。

(2)使用sql server资源调控器(http://blog.sqlauthority.com/2012/06/04/sql-server-simple-example-to-configure-resource-governor-introduction-to-resource-governor/

使用此功能,您可以按用户设置资源消耗。因此,对于您的测试服务器,只需使用较低的资源分配来设置其用户。

(3)在sql server中,您还可以使用sp_configure在sys.configurations中设置实例的最大内存。对于CPU,您可以尝试在测试环境中尝试使用关联掩码,或者为实例分配特定的CPU ID范围或NUMA节点ID范围。有关详细信息:http://msdn.microsoft.com/en-us/library/ee210585(v=sql.110).aspx

我建议始终在任何实例中设置max server memory。我不建议在没有大量测试的情况下搞乱亲和力或CPU范围设置。相反,对于您的情况,我建议使用资源调控器。这是bc它没有VM的缺点,VM本身有开销,因此耗尽了一些服务器资源。您还可以使用资源调控器将CPU调度留给操作系统和服务器。此选项还为您提供了最大的灵活性,因为您可以限制特定用户的资源,以备您需要时使用。