4
月 24
日,我们发布了 SQL Database
基本级(预览版)和标准级(预览版)新服务等级的预览版以及新的业务连续性功能。在本博客文章中,我们将深入探究 SQL Database
中新等级的性能。

首先从变革的需求开始。我们之所以关注新服务等级中的性能(具体地说是可预测性能),主要是受客户对
SQL Database Web 级和企业级性能的强烈反馈推动。Web
级和企业级的性能一直都是不可预测的,存在随机性,这就给运行业务关键应用程序的客户带来了问题。我们明白,从客户角度而言,性能的可预测性非常重要。客户告诉我们,如果某个平台的性能长期不可信赖,那么就很难构建出能够在此平台上可靠运行的系统。

针对这一反馈,我们在
SQL Database 高级(预览版)之外又推出了基本级(预览版)和标准级(预览版)。高级(预览版)已于 2013
年 7
月推出预览版,主要专注于提供可预测的性能。客户对高级(预览版)的反馈非常积极。基本级(预览版)和标准级(预览版)也将向客户提供这一优势,而且有新的收费方式。客户现在可以将性能作为他们能够控制的一个杠杆,这也符合当前云计算行业的需要。这一杠杆会是客户从“按存储定价”的
Web 级和企业级服务模式转向“按性能+功能定价”这一新模式的主要推动力。

当您在新服务等级中测试应用程序时,请记住我们目前处于预览阶段,也就是说我们仍在对新性能体验进行持续微调。我们通过发布预览版来仔细倾听您的反馈,并将基于反馈进一步完善新的服务等级。您在运行性能测试时,不妨制定周期性重新运行计划,以确保您能更好地了解这些新服务等级中可用的不同性能级别。我们会在这些预览版的后续发展阶段,尽最大可能发布更多与性能相关的博客文章。

事实上,根据客户的反馈,我们刚刚对
5 月 19
日星期一这一周新推出基本级(预览版)和标准级(预览版)的吞吐量进行了改进:

  • 基本(预览版):1
    个 DTU –>
    5 个 DTU

  • S1:5
    个 DTU –>
    15 个 DTU

  • S2:25
    个 DTU –>
    50 个 DTU

性能是什么意思?

数据库性能是一个复杂的话题,通常会采用大量指标来描述它的状态。从应用程序角度而言,用户真正关心的是:

  • 响应时间

    • 特定查询执行从开始到结束所经过的时间。

  • 吞吐量

    • 系统在任何时间点可运行的总体工作或执行速度。通常情况下,只有当单个执行在指定响应时间内完成时,吞吐率才会被视为有效。

影响响应时间和吞吐量的因素有很多,但主要可分为两类,即应用程序设计和硬件资源。以下是对数据库应用程序进行性能故障排除时的一些常见问题示例:

  • 应用程序设计

    • 是否已创建正确的指数集,为执行查询提供了最好的平台?

    • 是否使用了正确的事务隔离级别?系统是否在无谓地等待锁定资源?

    • 是否已采用多表批次或存储过程将往返通信最小化?

  • 硬件资源

    • 是否有执行工作负载的足够可用资源?

    • 我需要对先后发生的不同类型的工作负载分配多少资源?

在性能方面,新的
SQL 数据库服务等级可以通过允许客户升级至提供更多硬件资源的性能级别,帮助解决与硬件资源相关的问题。如果采用的是横向伸缩设计模式(分区),您可以根据工作负载给不同分区分配新性能级别以提供不同的资源(例如向一个包含高度活跃客户的分区分配更高的性能级别)。我们正在积极制定一套详细的分区指南,为您提供这方面的帮助,敬请期待!

此外,
云设计的最佳实践之一是持续优化应用程序设计。这些投资可帮助降低对使用更高性能级别的需求,缩减运行数据库工作负载的成本。

有哪些硬件规格?

运行数据库工作负载所需的资源可归结为各种类型的硬件资源,包括
CPU、磁盘 IO
操作(读/写)和内存等。各个资源中的各个方面又存在巨大差异。例如,不同类型的内核有不同的时钟周期和缓存大小,IO
执行规模有大有小,具体取决于数据库系统在做什么。要预测您的应用程序对每种资源实际需要多少,并比对长期利用率,这一任务会非常困难,而且很耗时。在内部部署环境中,您要对数据库在其上运行的硬件进行控制,执行上述任务也无可厚非。移动到云上,尤其是使用
SQL Database 的一大吸引力就在于,您可以集中精力构建强大的应用程序,而无需劳神管理硬件或补丁及维护数据库软件。客户告诉我们,他们不想这么麻烦,只希望吞吐量水平能随时跟上他们的需求。这也正是我们关注性能的一个愿景。

在新服务等级下,我们采用了新的设计原理,可帮助确保性能的可预测性。每个性能级别(基本级(预览版)、S1、S2、P1、P2、P3)对应不同的资源组(如
CPU、内存、IO
等)分配。数据库在每个级别中可使用的最大资源量为既定。设计原理在于,一个数据库的性能应该大致等同于:在具有对应性能级别同样资源组的专用计算机上运行时所能实现的性能。该设计原理是提供可预测性能的基础。

要了解各性能级别的资源差异,我们引进了数据库吞吐量单位
(DTU) 的概念。DTU
是对各性能级别所分配资源的混合衡量指标。例如,P1
具有 100
个 DTU,S1
有 15
个 DTU,也就是说,S1
获得的资源是 P1
的 1/7
左右。按照上述设计原理,您可以预见在 S1
级别运行的数据库所拥有的性能级别类似于:在 CPU
速度、内存和 IO
能力均为 P1
级别 1/7
左右的专用计算机上运行时所能实现的性能。

从用户和故障排除角度来看,我们展示了您的数据库工作负载在各个资源方面所使用的基于当前性能级别的百分比情况,省去了理解不同类型的
IO、磁盘队列长度等诸多麻烦,使您可以轻松了解相对当前性能级别的资源使用情况。

我们在主数据库
sys.resource_stats
视图中展示了针对 CPU、读写使用情况的遥测数据,稍后还会在预览版中增加内存相关信息。此视图包含针对各资源方面平均
5 分钟(5
分钟内的总使用情况)收集的数据,这对于衡量您的长期资源需求非常有用。此遥测数据也可以在门户网站中获取。有关查询
sys.resource_stats
以及预测所使用 DTU
的更多详情,您可以阅读
MSDN 文章,其中介绍了有关新服务等级的信息。

我们知道,提供强大的遥测数据对于性能故障排除非常重要。敬请期待我们在预览期间提供更多相应增强功能。

数据库工作负载生命周期

“使用数据库”的行为不是单个操作,而是由许多不同类型的操作构成。这一点听上去显而易见,但是在您计算哪个性能级别适合您的数据库,从而确定为运行数据库工作负载分配多少资源时却非常重要。答案可能并不像“标准(预览版)
S2
@ 200
美元/月”(采用正式发布版价格)这么简单。云(尤其是
SQL Database)带给我们的一大优势就是灵活缩放能力。举例而言,“周一至周四和周六日使用基本(预览版)应对数量不多的查询,周五使用
S2
管理在特定时间窗口内运行的较大型批量工作,每个月选一天使用
P1
快速执行大规模 ETL
操作:

  • (基本(预览版)价格/ 30 * 25)=
    4.16 美元

  • (S2
    价格/ 30 * 4)=
    26.7 美元

  • (P1
    价格/ 30 * 1)=
    31 美元

    总计
    61.86 美元/月

像上例中一样,许多数据库的工作负载生命周期将包含有着不同要求的不同子工作负载,例如:

  • 数据库的初始负载(例如,当您向 SQL Database
    迁移时)

  • 正常使用(例如,在正常工作日使用此应用程序的单个部门的用户活动)

  • 高峰使用(例如,每月一次处理针对整个公司全体员工的报告情况)

  • 大型提取转换和加载(ETL
    或导入/导出)操作

  • 物理数据库维护操作(如创建索引)

如果将工作负载按不同要求分类,您将不必一直按峰值负载所需要的性能级别运行,从而可以大大缩减成本。

只需调用指定新服务目标
Update Database API,您的应用程序代码可在必要时更改性能级别。此更改本身是一项异步操作,您可以使用
Get Database API
监视更改状态。您的数据库在整个更改过程中都将在线可用。

Web
级和企业级对比基本级(预览版)、标准级(预览版)和高级(预览版)

我们经常被问到的一个问题是,新服务等级中的性能与
Web 级和企业级相比如何。这个问题很难直接回答。难就难在新服务等级与 Web
版和企业版有着本质的不同。在 Web
级和企业级中,服务模式仅基于所使用的存储量,不会考虑任何其他硬件资源。系统基于保证存储可用性进行优化,不会考虑用以执行数据库工作负载的任何其他资源,这是一个根本性的缺陷。Web
级和企业级中的性能级别和资源可用性取决于不同的因素,如其他客户在同一计算机中的工作负载以及保护其本身不会过度使用的系统等。您能否利用这些资源要看运气,如果不通过新服务等级予以解决,这一问题会随着时间的推移而越来越突出。

我在文章开头已经说过,客户已经明确告诉我们,他们不希望自己的性能体验不可预测且不确定。新推出的基本级(预览版)、标准级(预览版)和高级(预览版)专注于以不同价位提供高性能的可预测性。也就是说,系统优化不仅是为了提供存储,也是为了兼顾执行数据库工作负载所需要的其他硬件资源。

这些服务等级所采用的设计原理有着本质的不同,因此就如同在比较苹果和橙子一样,并无可比性。

为了帮助您了解
Web 级和企业级的资源使用情况,我们在
sys.resource_stats
中提供了所使用资源的百分比情况(上文已提及)。遥测数据中针对 Web
级和企业级资源百分比计算的参考点设置为标准(预览版) S2
的 ½,因为这是目前
Web 级和企业级数据库的一般价位。请注意,这只是遥测数据的参考点,并不表示 Web
级和企业级中的可用资源量。如上所述,Web
级和企业级中的可用资源量存在不确定性。但想准确了解您的数据库所需的性能级别,您应当升级至这些新服务等级之一,然后运行您的工作负载,查看
sys.resource_stats。针对基本级(预览版)和标准级(预览版)服务仅在新建的逻辑服务器中可用的现有限制条件,会在后续预览阶段予以解除,届时您将不必导入
Web 级和企业级数据库来测试新服务等级。

非常感谢!

我们希望本博客文章可帮助您更深入地理解新服务等级中的性能。引言中已经提到,我们在预览阶段将评估反馈以及性能目标的质量,我们会在了解和收集到反馈后对性能级别做出相应调整。

其他参考文章:

感谢您使用
SQL Database 并试用预览版!

/Tobias
和 SQL Database
团队

本文翻译自:http://azure.microsoft.com/blog/2014/05/19/performance-in-the-new-azure-sql-database-service-tiers/



新 Azure SQL 数据库服务等级的性能的更多相关文章

  1. 价格更低、SLA 更强的全新 Azure SQL 数据库服务等级将于 9 月正式发布

    继上周公告之后,很高兴向大家宣布更多好消息,作为我们更广泛的数据平台的一部分, 我们将在 Azure 上提供丰富的在线数据服务.9 月,我们将针对 Azure SQL 数据库推出新的服务等级.Azur ...

  2. Azure SQL 数据库:新服务级别问答

    ShawnBice   2014 年 5 月 1 日上午 11:10 本月初,我们庆祝了SQL Server 2014 的推出,并宣布正式发布分析平台系统,同时分享了智能系统服务预览版.Quentin ...

  3. Azure SQL 数据库新服务级别现已正式发布

    T.K.Ranga Rengarajan   2014 年 9 月 10 日上午 11:00 我们很高兴地宣布,新的 SQL 数据库服务级被基本.标准和高级级别现已正式发布.这些服务级别中含有内置且可 ...

  4. Azure SQL 数据库:服务级别与性能问答

    ShawnBice    2014 年 5 月 5 日上午 10:00 几天前,我发表了一篇文章,并就 4 月 24 日发布的适用于Windows Azure SQL 数据库的新服务级别提供了一些预料 ...

  5. Azure SQL 数据库与新的数据库吞吐量单位

    在这一期中,Scott 与 Azure SQL 数据库性能首席项目经理主管 Tobias Ternstrom 一起详细阐释了新的数据库吞吐量单位 (Database Throughput Unit, ...

  6. Azure SQL 数据库引入了新的服务级别

     新的级别将提升客户体验,并提供更多的业务连续性选项 为了更好地满足您在灵活性提升方面的需求,MicrosoftAzure SQL 数据库添加了新的服务级别(基础级和标准级),以与当前处于预览状态 ...

  7. Azure SQL 数据库弹性池现已面市

    我们高兴地宣布Azure SQL 数据库弹性池现已正式面市.弹性池自去年试运行以来,得到许多软件即服务(SaaS)供应商和企业开发人员的认可,他们利用弹性池管理持续增长的云数据库和应用程序,成果高效. ...

  8. Azure SQL 数据库的灵活缩放预览版简介

    Eron Kelly SQL Server 产品管理部门产品市场营销总经理 几天前,我们宣布了发布 Azure SQL 数据库的灵活缩放公共预览版.新增的灵活缩放功能通过简化开发和管理,简化了扩展和缩 ...

  9. Azure SQL 数据库仓库Data Warehouse (3) DWU

    <Windows Azure Platform 系列文章目录> 在笔者的上一篇文章中:Azure SQL 数据库仓库Data Warehouse (2) 架构 介绍了SQL DW的工作节点 ...

随机推荐

  1. 在一个exe文件中查找指定内容,找到则返回起始位置, 否则返回0

    //在一个exe文件中查找指定内容,找到则返回起始位置, 否则返回0//如果某字符串, 直接传入字符串进来//如果要查找16进制,则用如下格式传参进来: #$1A#$2A#$3A function F ...

  2. HtmlAgilityPack - 简介

    HtmlAgilityPack是.net下的一个HTML解析类库.支持用XPath来解析HTML.这个意义不小,为什么呢?因为对于页面上的元素的xpath某些强大的浏览器能够直接获取得到,并不需要手动 ...

  3. 什么是Elasticsearch

    一个采用Restfull API 标准的高扩展性和高可用性的实时数据分析的全文搜索工具 Elasticsearch 涉及到的一些概念: 1.Node(节点): 单个的装有Elasticsearch服务 ...

  4. 解决问题之,wp项目中使用MatchCollection正则表达式匹配出错

    在最近,出现了这么一个问题 本人使用正则表达式代码,解析响应output,意图获得周边的CMCC热点 代码如下: //output="<?xml version=\"1.0\ ...

  5. Quartz.NET作业调度框架详解

    Quartz.NET作业调度框架详解 http://www.cnblogs.com/lmule/archive/2010/08/28/1811042.html

  6. 过程化开发2048智力游戏WebApp

    时间荏苒,唯编程与青春不可辜负,感觉自己一直没有专心去提升编程的技能,甚是惭愧!!! 周五,无意间看到一个开发2048的视频,有点兴趣就动起手来了,虽然不擅长前端开发,在此献丑,分享一下自己使用过程化 ...

  7. LoadRunner性能测试中Controller场景创建需注意的几点

    在LR工具做性能测试中,最关键的一步是Controller场景的设计,因为场景的设计与测试用例的设计相关联,而测试用例的执行,直接影响最终的测试结果是怎么的,因此,我们每设计一种场景,就有可能是一个测 ...

  8. LoadRunner如何开展性能测试

    最近一直想理清思路,特别是碰到一些业务复杂的项目,要求做性能测试,结果一时就不知道怎么下手了.因为之前面试的时候,也碰到很多面试官对性能测试知识方面的提问,面试多了,就有经验,现在写下来,脑子不会乱, ...

  9. 【贪心】【POJ3154】墓地雕塑(Graveyard, NEERC 2006, LA 3708)需要稍稍加工的(先贪心,再确保能这样贪(可行性&&如果可行必定最优&&非证明最优性)的题)(K)

    例题4  墓地雕塑(Graveyard, NEERC 2006, LA 3708) 在一个周长为10000的圆上等距分布着n个雕塑.现在又有m个新雕塑加入(位置可以随意放),希望所有n+m个雕塑在圆周 ...

  10. MySQL Update 使用

    备忘: USE `xxx`; ; UPDATE `TB_MB_1` T SET T.`MedicalCount` = ( SELECT S.Total-- ,S.`HospitalID` FROM( ...