在本文中,我们将来看看SQL Server 2014在资源调控器方面增加了哪些新的功能。资源调控器(Resource Governor)是从SQL Server 2008开始出现的一项功能。它是用于管理 SQL Server 工作负荷和系统资源使用情况的功能。 在SQL Server 2014之前,资源调控器只能限制某些用户访问SQL Server所占用的CPU带宽、内存资源。但是随着虚拟化和云技术的发展,IO的控制有了很大的需求。IaaS(Infrastructure as a Service),即基础设施服务提供商需要通过对IO资源池的资源设定,控制每个客户需要的资源。这可以保证性能不会受其他客户的影响,同时也可以基于用户的资源请求设定不同的SLA或者数据库服务。另一个需求是IT管理员或者数据库管理员希望可以将OLTP工作负载与维护操作进行隔离。比如重建索引是一种常见的操作,因为要扫描整个索引或者表,会导致大量的IO请求。通过使用IO资源管理可以限制这些操作的IO负载,从而保证OLTP的并发和性能不受影响。使整个服务器环境更加的稳固。

在SQL Server 2014中,根据客户的请求,增加了对IO资源的控制来解决这些问题。

资源调控器中资源池,工作负荷组,分类的概念和之前无异。

下面是SQL Server 2014增加的新特性

  • Resource Pools 在对CPU/Memory的控制基础上增加了对卷(per volume Disk Partition逻辑分区)的IOPs控制,可以针对卷设置最大和最小的IOPS,从而实现更复杂的资源控制。
  • 可以对单个磁盘分区设置 maximum outstanding IO (在实例级别). 使用这个特性可以更好的调整磁盘子系统的负载。
  • 在DMV sys.dm_resource_governor_resource_pools和sys.dm_resource_governor_configuration中新增了栏位可以查询IO的使用和配置。另外新增加了DMV
    sys.dm_resource_governor_resource_pool_volumes,可以捕获IO跨不同分区的使用情况。

具体请参考:

http://msdn.microsoft.com/en-us/library/bb934023.aspx

http://msdn.microsoft.com/en-us/library/bb934099.aspx

http://msdn.microsoft.com/en-us/library/dn358348.aspx

  • 新增加了两个新的XEvents (file_write_enqueued, file_read_enqueued),可以对于IO资源管理队列的IO请求。
  • 最后我们增加了性能监视指标SQLServer:Resource     Pool Stats包括Disk Read IO/sec, Disk Read Bytes/sec, Avg Disk Read IO (ms), Disk Write IO/sec, Disk Write
         Bytes/sec, Avg Disk Write IO (ms), Disk Read IO Throttled/sec, Disk Write IO Throttled/sec等。

当一个用户成功登录到SQL Server,如果IO资源调控被设置的话,数据库引擎将会调用分类函数去判断当前登录用户属于哪一个工作负荷组。当此用户执行一条SQL语句产生对IO的读写时,数据库引擎不会将此IO读写请求直接发送给OS,取而代之的是将此IO请求放到一个队列中,SQL IO资源管理会根据当前用户的设置和已有资源的使用情况从队列中取出相应的IO请求发送给OS进行执行,以实现对IO资源的管理与控制。

我们以下面为例说明如何在一个SQL Server实例中使用IO资源调控器。

假设我们有一台数据库主机或者运行在私有云上的整合数据库,我们需要根据多个客户的要求放多个数据库,这样可以实现资源的有效利用同时节省成本。如果客户的一个数据库运行IO密集型的工作负载,这样会导致整个磁盘的IO性能,从而影响其他用户的操作。

为了简化我们的演示,假设有两个用户需要访问此数据库,其中一个用户为IT管理人员,需要定期的备份数据库以保重数据安全,还有一个用户为财务人员,需要读取数据以生成报表。我们为这两个用户创建两个资源池和一个可以将用户会话映射到对应资源池的分类器函数。会话为用户backup被映射到资源池GroupBackup,会话为用户report映射到资源池GroupReport。为了使演示清晰明了,我们将资源池GroupBackup最小和最大IOPS设定为1,将资源池GroupReport最小和最大IOPS设定为2。

  1. use master;
  2.  
  3. go
  4.  
  5. -- Create 3 workload groups for different category of users or application
  6.  
  7. CREATE WORKLOAD GROUP
  8. GroupAdmin;
  9.  
  10. CREATE WORKLOAD GROUP
  11. GroupBackup;
  12.  
  13. CREATE WORKLOAD GROUP
  14. GroupReports;
  15.  
  16. -- Create classifier function
  17.  
  18. CREATE FUNCTION dbo.rgclassifier() RETURNS sysname
  19. WITH SCHEMABINDING
  20. AS
  21. BEGIN
  22.  
  23. DECLARE @grp_name sysname
  24.  
  25. IF (SUSER_NAME() = 'admin')
  26.  
  27. SET @grp_name = 'GroupAdmin'
  28.  
  29. IF (SUSER_NAME() = 'backup')
  30.  
  31. SET @grp_name = 'GroupBackup'
  32.  
  33. IF (SUSER_NAME() = 'report' )--or APP_NAME() LIKE '%REPORT
  34. SERVER%')
  35.  
  36. SET @grp_name = 'GroupReports'
  37.  
  38. RETURN @grp_name
  39.  
  40. END;
  41.  
  42. GO
  43.  
  44. -- Register the classifier function with Resource Governor
  45.  
  46. ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION
  47. = dbo.rgclassifier);
  48. GO
  49.  
  50. -- Start Resource Governor
  51.  
  52. ALTER RESOURCE GOVERNOR RECONFIGURE;
  53. GO
  54.  
  55. -- Create resource pools and map it to workload groups
  56.  
  57. CREATE RESOURCE POOL
  58. PoolAdmin
  59. WITH (
  60. MIN_IOPS_PER_VOLUME = 100,
  61. MAX_IOPS_PER_VOLUME = 100
  62. );
  63.  
  64. CREATE RESOURCE POOL PoolBackup
  65. WITH (
  66. MIN_IOPS_PER_VOLUME = 1,
  67. MAX_IOPS_PER_VOLUME = 1
  68. );
  69.  
  70. CREATE RESOURCE POOL PoolReports
  71. WITH (
  72. MIN_IOPS_PER_VOLUME = 2,
  73. MAX_IOPS_PER_VOLUME = 2
  74. );
  75.  
  76. ALTER WORKLOAD GROUP
  77. GroupAdmin
  78.  
  79. USING PoolAdmin;
  80.  
  81. ALTER WORKLOAD GROUP
  82. GroupBackup
  83.  
  84. USING PoolBackup;
  85.  
  86. ALTER WORKLOAD GROUP
  87. GroupReports
  88.  
  89. USING PoolReports;
  90.  
  91. ALTER RESOURCE GOVERNOR RECONFIGURE;
  92.  
  93. GO

通过这个配置,SQL Server将会限制IO资源池的负载,从而满足2个IOPS给用户Report,1个IOPS给用户Backup。通过设置IO资源调控器对客户设置最大的工作负载限制,一方面可以达到预测的性能,同时还会保护其他的用户性能不受影响。

限制:

IO资源调控器主要是针对物理IO(磁盘读写)的限制,对逻辑IO(内存)是不起作用的。此外,IO资源调控器也只会限制用户完成任务产生的读写IO。对于一些SQL
Server 发起的IO,是源于SQL本身的后台进程,例如:checkpoint, lazy writer。这部分的IO都在默认的INTERNAL工作负荷组中,是无法被限制的。所以IO资源调控器对IO的控制主要的两个应用场景为限制重建索引和备份带来的大量磁盘开销。

原文链接:http://blogs.msdn.com/b/apgcdsd/archive/2014/12/13/sql-2014-5-io.aspx

SQL Server 2014里的IO资源调控器的更多相关文章

  1. 在SQL Server 2014里,如何用资源调控器压制你的存储?

    在今天的文章里,我想谈下SQL Server 2014里非常酷的提升:现在你终于可以根据需要的IOPS来压制查询!资源调控器(Resource Governor)自SQL Server 2008起引入 ...

  2. SQL Server 2014里的性能提升

    在这篇文章里我想小结下SQL Server 2014引入各种惊艳性能提升!! 缓存池扩展(Buffer Pool Extensions) 缓存池扩展的想法非常简单:把页文件存储在非常快的存储上,例如S ...

  3. SQL Server 2014里的缓存池扩展

    在今天的文章里我想谈下SQL Server 2014里引入的缓存池扩展(Buffer Pool Extensions).我们都知道,在SQL Server里,缓存池是主要的内存消耗者.当你从你存储里读 ...

  4. SQL Server 2014里的针对基数估计的新设计(New Design for Cardinality Estimation)

    对于SQL Server数据库来说,性能一直是一个绕不开的话题.而当我们去分析和研究性能问题时,执行计划又是一个我们一直关注的重点之一. 我们知道,在进行编译时,SQL Server会根据当前的数据库 ...

  5. 在SQL Server 2014里可更新的列存储索引 (Updateable Column Store Indexes)

    传统的关系数据库服务引擎往往并不是对超大量数据进行分析计算的最佳平台,为此,SQL Server中开发了分析服务引擎去对大笔数据进行分析计算.当然,对于数据的存放平台SQL Server数据库引擎而言 ...

  6. 谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 撰写经历(Experience) 特约稿正文(Content-body) 第一部分:生活中资源 ...

  7. SQL Server 2014 新特性:IO资源调控

    谈谈我的微软特约稿:<SQL Server 2014 新特性:IO资源调控> 2014-07-01 10:19 by 听风吹雨, 570 阅读, 16 评论, 收藏, 收藏 一.本文所涉及 ...

  8. SQL Server 2014如何提升非在线的在线操作

    在今天的文章里,我想谈下在线索引重建操作( Online Index Rebuild operations),它们在SQL Server 2014里有怎样的提升.我们都知道,自SQL Server 2 ...

  9. 第16/24周 SQL Server 2014中的基数计算

    大家好,欢迎回到性能调优培训.上个星期我们讨论在SQL Server里基数计算过程里的一些问题.今天我们继续详细谈下,SQL Server 2014里引入的新基数计算. 新基数计算 SQL Serve ...

随机推荐

  1. #入魔这些年#零度智控&模型控社区大型征文活动,万元大奖等你拿

        玩航模是个好爱好,它能培养严谨的科学态度.超强的DIY动手能力.规范的项目管理习惯.良好的沟通合作技巧.过人的三维空间思维和感知: 你需要的知识储备有力学.空气动力学.电子学.通讯工程.材料学 ...

  2. windows环境下Eclipse开发MapReduce程序遇到的四个问题及解决办法

    按此文章<Hadoop集群(第7期)_Eclipse开发环境设置>进行MapReduce开发环境搭建的过程中遇到一些问题,饶了一些弯路,解决办法记录在此: 文档目的: 记录windows环 ...

  3. FTP客户端上传下载Demo实现

    1.第一次感觉MS也有这么难用的MFC类: 2.CFtpFileFind类只能实例化一个,多个实例同时查找会出错(因此下载时不能递归),采用队列存储目录再依次下载: 3.本程序支持文件夹嵌套上传下载: ...

  4. android手机两种方式获取IP地址

    1.使用WIFI 首先设置用户权限 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"& ...

  5. Apache Storm 的历史及经验教训——Nathan Marz【翻译】

    英文原文地址 中英文对照地址 History of Apache Storm and lessons learned --项目创建者 Nathan Marz Apache Storm 最近成为了ASF ...

  6. [Aaronyang] 写给自己的WPF4.5 笔记22 [3d交互与动画 3/4]

    OK,前面我们的3d模型都比较囧啊,最近也看了一点ZAM了解了一下,大致至少可以做个简单的模型用来演示. 1.交互,动起来的思路 ①修改Model3D对象的变换 ②修改应用于ModelVisual3D ...

  7. [转] Linux学习之CentOS(三十六)--FTP服务原理及vsfptd的安装、配置

    本篇随笔将讲解FTP服务的原理以及vsfptd这个最常用的FTP服务程序的安装与配置... 一.FTP服务原理 FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文 ...

  8. Console中加入招聘等个性化信息

    try { if (window.console && window.console.log) { console.log("%c XX息科技 ", "f ...

  9. 让MyEclipse2013兼容Retina屏幕

    1. 找到文件:/Applications/MyEclipse/MyEclipse Professional.app/Contents/Profile/myeclipse.app/Contents/I ...

  10. dell新服务器安装系统

    公司新采购的dell 630服务器,但是第一次安装操作系统的时候比较麻烦,每次都要重新琢磨下. 现在记录一下,以供下次参考 1.插入服务器自带光盘,设置CD启动,选择部署OS 2.配置raid,然后插 ...