SQL Server 2008 Resource Governor入门(下)

日期: 2009-05-24 作者:Ross Mistry翻译:曾少宁 来源:TechTarget中国 英文

资源池会设置一个最小资源集;这些资源是非重叠的。其它的池将无法使用这些资源,并且所有库的最小设置之和不能超过100%。资源池同时还有最大资源集,这是与其它库共享的。虽然对一个特定池的最大资源设置可以达到100%,但是有效的最大值将可能小一些。

让我们来看看表16.1中池的各种值的范围。  Table 16.1 – Minimum and Maximum Pool Values Name Minimum Maximum Effective Max Shared Max Internal 0 100 100 100 Default 0 100 100-30-20=50 ……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

资源池会设置一个最小资源集;这些资源是非重叠的。其它的池将无法使用这些资源,并且所有库的最小设置之和不能超过100%。资源池同时还有最大资源集,这是与其它库共享的。虽然对一个特定池的最大资源设置可以达到100%,但是有效的最大值将可能小一些。让我们来看看表16.1中池的各种值的范围。 

Table 16.1 - Minimum and Maximum Pool Values

Name

Minimum

Maximum

Effective Max

Shared Max

Internal

0

100

100

100

Default

0

100

100-30-20=50   

0

Resource Pool A   

20

50

50-30-0=20

20 (50-20)

Resource Pool B

30

70

70-20-0=50

20 (70-50)

  比如,资源池A将有一个最小值为20的CPU,并且有一个有效最大值为20(库A的最大值减去库B的最小值)。我们减去库B的最小值,是因为默认池的最小值不被其它的池占用,这在所有这类池上都一样。这就意味着它将与其它池共享20%它未使用的资源。负载组位于资源池中,并且是可以动态地在资源池间移动的。注意,如果我们的分类器方法出现了错误,或者如果分类器无法分类负载,那么它将在默认的资源池上运行。

  • 负载组——一个负载组是一个容器,有一个或者多个的负载会在其中运行。负载组有相应的属性,如Max CPU,并行度等等,同时,我们可以监控一个资源池中负载组的资源消耗。这是很有价值的,因为它将允许我们将一个负载组的负载移动到另一个负载组中,或者一个新创建的负载组中。对于资源库,默认情况下有两个负载组,一个是内部负载组,另一个是默认负载组。

  我们无法修改内部负载组,但是我们可以监控它。默认组将处理所有未分类的负载。

  Resource Governor场景

  由于Resource Governor是SQL Server 2008的一个新功能,大多数DBA都想了解它是应用在SQL Server基础架构的哪个位置。Resource Governor通过允许DBA“存储”他们的负载到资源库来控制性能,这样,就可以预先设计能够消耗的CPU和RAM资源。例如,DBA正在使用备份压缩,这是就是一个高CPU消耗的操作。当进行备份时,它们就需要消耗其它使用SQL Server的负载所要使用到的CPU。最终结果是,当运行备份进程时,使用SQL Server的所有负载的性能都会降低。如果DBA在一个资源池中设置最大值的CPU使用率为25%,那么备份过程将被节流,那么运行备份时对CPU的影响将远远小于没有使用Resource Governor的时候。最终结果是,备份过程将会延长,但是其它运行的负载在备份操作过程中将继续保持与备份开始之前相同的性能。

  再考虑一个例子,如果一个游标或者WHILE循环没有一个FETCH NEXT操作,或者是增量步骤。在这种情况下,游标或者WHILE循环将执行相同代码部分并永远不退出该游标或者WHILE循环。比如这样一个进程,即arunaway process,将优先于其它进程,它能消耗所有的CPU资源。Resource Governor将通过它们的优先级以及这些不受控制的进程使用的资源来减少它们对性能造成的影响。

  Resource Governor也可以用来分类负载,以及将负载放到负载组中,这样就可以将这些负载与其它进程隔离开来。比如,将一个报告负载放到其自已的负载组中,我们可以对负载组进行限制,从而最小化来自其它影响报告负载的负载组中各种负载的影响,。再比如,由于高的CPU消耗的进程可以被管理,因此其它负载将能够获取它们所需求的CPU资源。

  通过将负载隔离到它们的独立负载组中,我们就能够对它们进行监控和调整它们所消耗的资源。Resource Governor将允许我们密切地监控负载组中负载的CPU和内存消耗,这样我们就可以正确地分配资源到这个负载上,从而提高了SQL Server上所有负载的总体性能。

  使用Resource Governor来监控负载时,我们可以选择性地对负载进行优先级划分,如低、中或者高,然后为划分好优先级的负载创建负载组。这样就可以确保高优先级的进程的完成速度比较低优先级的更快些。在使用Resource Governor之前,是不可能监控或者执行这样的负载优先级划分。

  正如我们所探讨的,部署Resource Governor的最佳方式是将所有负载放在默认的资源池中,观察它们的资源需求,然后创建适合它们的资源要求的资源池,这样资源池就会限制整个SQL Server上的负载对性能的影响。在创建了这些资源池之后,负载可以被移动到这些资源池中,而SQL Server将动态地在负载超出它们使用的资源限制时对它们进行节流。

Ross Mistry是Convergent Computing的主要咨询师,畅销书作家和SQL Server MVP。他专注于为位于Silicon Valley的财富500组织提供实施SQL Server、Active Directory和Exchange solutions。Ross的SQL Server专长包括高可用性、安全性、迁移和虚拟化。他最新的书包括SQL Server 2008 Management and AdministrationWindows Server 2008 Unleashed。Ross是techtarget.com的常期撰稿作家,同时他还为世界各地的国际技术会议作演讲。他的博客可以在networkworld.com上找到。

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。

相关推荐