SQL Server 2008 Resource Governor入门(上)

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

Resource Governor是SQL Server 2008一个新的功能,并且是最早具备的管理功能的其中一个。它通过允许DBA在处理器、相关内存负载和资源池上建立资源限制和优先组长来调优SQL Server性能。通过定义资源消耗上的限制,我们可以对多个负载进行优先级划分以便确保性能要求,同时最大化最终用户的体验和应用的运行效率。   在一开始,我们就必须重点意识到,只有当SQL Server正在经历CPU或者内存压力时,Resource Governor才会节流进程,并且它将只阻止后续到达的请求。

比如,一个消耗大量CPU资源的进程将不会被节流,但是下一个进程可能会被节流。在SQL Ser……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

Resource Governor是SQL Server 2008一个新的功能,并且是最早具备的管理功能的其中一个。它通过允许DBA在处理器、相关内存负载和资源池上建立资源限制和优先组长来调优SQL Server性能。通过定义资源消耗上的限制,我们可以对多个负载进行优先级划分以便确保性能要求,同时最大化最终用户的体验和应用的运行效率。

  在一开始,我们就必须重点意识到,只有当SQL Server正在经历CPU或者内存压力时,Resource Governor才会节流进程,并且它将只阻止后续到达的请求。比如,一个消耗大量CPU资源的进程将不会被节流,但是下一个进程可能会被节流。在SQL Server 2008上,Resource Governor还不能节流高I/O消耗的用户(过度地进行磁盘读取和写入的进程),但已经计划在下一个版本中加入。DBA会很欢迎Resource Governor,因为他们可以用它来进行控制:

  • 失去控制的进程——进程可以以不同的方式降级SQL Server的总体性能;比如,一个错误写入的游标将不再消耗所有CPU,或者一个没有正确索引的查询不能造成CPU峰值,或者一个运行时间很长且返回大量记录集的查询不能消耗进程的大量内存。
  • 登录优先——DBA可以选择性地为某些组赋予较高的登录优先级,而对其它的登录提供较低的优先级;比如,报告用户的优先级别将比与定单输入应用的低。
  • 不可预测的响应——通过停止高资源消耗的用户,SQL Server将能够传输可预测的响应时间,因为高资源消耗用户将不再会像它们在未控制的SQL Server基础架构上那样降低SQL Server性能。

  注意:Resource Governor只应用在SQL Server Database Engine;而不应用于Reporting Services、 Analysis Services或者Integration Servers。同时,它是与实例无关的;换言之,在相同的SQL Server上运行另外一个实例仍然可以降低所有实例的性能。

  Resource Governor概念

  在我们开始使用Resource Governor之前,很好地理解它的概念是至关重要的。Resource Governor有三个组件。在本文中,我们将探讨这三个组件,这些将有助于我们理解它们,并且在我们的企业中实现Resource Governor。

  • 负载——负载是一个可以通过Resource Governor辨别和停止的进程。它由一个或多个进程组成。Resource Governor无法停止激活的进程;它只能在它们开始启动的时候停止进程。
  • 分类器方法——分类器功能是一个TSQL方法,它在登录时调用,并且将确定进程在哪个负载组上执行的。Resource Governor每次只可以使用一个分类器方法,但是我们可以动态地修改分类器方法或者修改Resource Governor使用的分类器方法。在登录被验证并且注册触发器执行之后,负载将会被分类器方法进行分类。
  • 资源池——Resource Governor将CPU和RAM划分成一个个的组就是池。可以将资源池看作一个SQL Server实例。SQL Server在一个物理机器上运行的多个实例之间共享资源。类似地,Resource Governor在资源池中共享资源。

  默认情况下,资源调速器创建了两个资源库,一个是默认的资源库,另一个是内部资源库。所有内部数据库引擎过程都在内部资源库上运行。我们无法修改内部资源库的属性,也不能创建负载组在其内部运行。默认资源库是所有负载运行的库,除非我们定义另一个资源库,同时,分级负载是在另外一个资源库上存在的负载组上运行的。我们可以创建自己用户的资源库并在运作中修改它们的属性。对用户资源库的修改将应用到新的注册负载上,而不是当前负载。

相关推荐