Azure SQL Database:服务层与性能Q&A

原文地址:https://blogs.technet.com/b/dataplatforminsider/archive/2014/05/05/azure-sql-database-service-tiers-amp-performance-q-amp-a.aspx

几天之前,我根据自己的预测在一篇博文中提出了一些Q&A,目的是就4月24日发布的Microsoft Azure SQL Database的新服务层提供一些细节。在现在这篇后续博文中,我希望就SQL Database在各个服务层中的性能提供更多信息。

同前一篇博客一样,最初写这篇文档是为了帮助微软团队的人员解决新服务层的常见问题,所以这里的信息对您当然也适用。

Shawn Bice
Data Platform事业部,项目管理总监

 

新的服务层如何提高SQL Database的性能?

我们从客户的反馈中发现,他们高度重视可预测的性能,在这一点上他们不谋而合。为了满足客户的这个要求,我们以前引入了一个Premium服务层来支持有更高吞吐量需求的数据库工作负载。我们以更低的价格推出了新的服务层(Basic与Standard),继续履行我们对可预测性能的承诺,新服务层的主要差异体现在性能上。在性能等级中向上移动时,可用的吞吐量会增加。这种服务设计为客户提供了连接正确的资源集合从而获得数据库所需吞吐量的机会。

Premium服务层有哪些变化?

从4月24日起,Azure SQL Database Premium预览版推出了新的500GB最大容量(这是另外一个性能等级(P3)),此外还提供了新的业务连续性功能(活动的地理复制和自助服务恢复)、简化的配置和计费体验。

Premium服务层有哪些新功能?

活动的地理复制: 获得对灾难恢复过程的控制,可以在任何Azure区域创建最多四个活动的可读副本,并选择故障转移的时间。关于使用活动的地理复制的更多信息,请参阅灾难恢复文档

自助服务恢复: SQL Database Premium提供了将数据库恢复到最近35天内任何时间点的能力,以应对人为或程序造成的数据删除。这里用自助服务代替了导入/导出来进行数据库恢复。关于使用自助服务恢复的更多信息,请参阅恢复服务文档

更大的数据库: 支持每天最多500GB数据库(数据库大小不单独收费)。

额外的Premium性能等级: 利用新的P3性能等级满足高端吞吐量需求,这个等级为要求最苛刻的数据库工作负载提供了最优性能。关于SQL Database Premium和定价的更多信息,请参阅SQL Database定价页面

有哪些性能等级?

Azure SQL Database服务层引入了“性能等级”的概念。Basic、Standard和Premium服务层共有6个性能等级。性能等级分别是Basic、S1、S2、P1、P2,以及P3。每个性能等级分别提供了必要的资源集合,可以运行从轻量级到重量级的数据库工作负载。

客户如何看待不同性能等级上的性能能力?

为了向客户提供更加可预测的性能体验,SQL Database引入了数据库吞吐量单位(DTU)。DTU代表数据库引擎的能力,这个指标混合了CPU、内存以及读写率。这个指标可以帮助客户测量6个SQL Database性能等级(Basic、S1、S2、P1、P2以及P3)的相对能力。

各个性能等级以及提供的DTC:

Basic

Standard

Premium

Basic:1   DTU

S1:5 DTU  S2:25   DTU

P1:100 DTU  P2:200   DTU  P3:800   DTU

 

在没有硬件指标的情况下,客户如何选择性能等级?

我们知道,在本地环境和VM领域中,机器指标已经成为评估一个系统能够为数据库工作负载提供的潜在能力的首选指标。但是,这个方法在平台即服务领域不适用,因为平台即服务的价值主张和整体客户价值的本质,就是对底层硬件和操作系统进行抽象。

客户总是告诉我们,他们在评估面向云的应用程序的性能需求时,会根据需要选择一个性能等级、构建应用,然后测试并调优。评估硬件规格的复杂任务在企业内部更关键,因为向上扩展的能力要求更细致的考虑和计算。而在使用数据库即服务时,挑一个选项,然后向上(或向下)选择一个性能能力非常简单,只要通过一个API或Azure门户就能实现。

更多信息,请参阅MSDN上的性能指南

客户如何查看一个性能等级上的资源使用情况?

客户可以监控一段时间内使用的CPU、内存和读写的百分比。原来,客户不会看到内存消耗,但在预览期间这会加入视图。

每小时、每分钟、每秒的事务率的含义

随着性能等级的提高,提供的吞吐量也越高。通过将每个服务层的吞吐量归纳为每小时、每分钟、每秒支持的事务率,可以方便客户迅速地将服务层的能力与应用程序的要求关联起来。例如,Basic等级针对的是以每小时事务量为单位测量活动的应用程序。例如面包店的POS机需要的吞吐量是每小时几百件商品。Standard等级针对的是每分钟几十到几百个事务的应用程序。Premium等级别针对的是最密集的关键任务吞吐量,要求每秒支持几百上千个并发事务。

如果客户需要以更精确的数字了解DTU性能,需要了解什么语言?

如果客户希望有一个熟悉的参考点,帮助他们选择合适的性能等级,微软为每个性能等级(Basic、S1、S2、P1、P2以及P3)发布了OLTP基准数字。这些公开发布的事务率是一个微软内部云基准的结果,这个云模拟典型OLTP云应用程序的数据库工作负载。同所有基准一样,这里发布的事务率只是一个指南。实际的数据库规模和复杂性各异,有不同的工作负载组合,而且响应方式也各不相同。无论如何,发布的事务率可以帮助客户理解每个性能等级相对的吞吐量。微软发布的基准事务率如下(在这里可以查看所使用的研究方法文章)。

Basic

Standard

Premium

基本:3,467/小时

S1:283/分钟  S2:1,470/分钟

P1:98/秒  P2:192/秒  P3:730/秒

 

我们不妨举一个汽车行业的例子来思考DTU,这提供了一个很好的类比。虽然使用马力来衡量引擎动力,但运动型汽车和卡车对马力的用法非常不同,从而得出不同的结果。类似地,数据库根据工作负载类型来使用DTU性能得到不同的结果。微软的基准数字基于单一定义的OLTP工作负载(例如,赛车)。客户需要针对他们的独特工作负载需求对此进行评估。

通过公开发布的基准来定义数据库能力,是云对TPC-C的类比。TPC-C是用于定义数据库工作负载最高性能潜力的传统的行业标准方法。熟悉传统数据库和数据库系统的客户会立即理解与基准数字相关的价值和提示。我们已经发现,新公司和开发人员不太熟悉基准测试行业。这类人群更愿意构建、测试和调优。

我们做了两手准备,既向客户提供基准定义的事务率,也提供快速构建、测试和调优(向上或向下伸缩)的能力,我们相信可以满足大多数客户的性能评估需求。

公开发布的事务率是否是吞吐量的保证?

微软的基准和相关的事务率不代表对客户的保证。尽管客户工作负载之间有差异,但客户并不能储备事务以应对突发工作负载,也不能延缓提供事务(不管是几秒、几分钟还是几天)。客户评估他们实际性能需要的最佳方式是在Azure门户中查看他们的实际资源使用情况。详细视图以百分比形式显示了在特定性能等级内,可用的CPU、内存和读写随时间的使用情况。

微软为什么不直接发布数据库基准测试行业标准的TPC基准?

TPC目前还不允许云供应商发布数据库工作负载的TPC基准。而且目前还没有建立另外的云厂商行业标准。

微软是否会发布基准代码,以便让客户在他们自己的环境中运行?

目前,还没有计划向客户发布基准。但微软会发布研究方法的细节(这里),说明如何运行定义的OLTP工作负载来得到发布的基准数字。