将新的SQL Azure层与旧的层进行比较

时间:2014-07-16 19:54:40

标签: azure azure-sql-database

现在Microsoft已经提供了新的SQL Azure服务层(Basic,Standard,Premium),我们正试图弄清楚它们如何映射到现有的(Web和Business)。

基本上,新分层中有六个性能等级:基本,S1,S2,P1,P2和P3(详情请见http://msdn.microsoft.com/library/dn741336.aspx

有谁知道旧数据库层如何映射到这六个级别?例如,商业是否等同于S1? S2?

我们需要能够回答这个问题,以便找出将现有数据库迁移到哪些服务层/级别。

4 个答案:

答案 0 :(得分:27)

我们刚刚完成了性能比较。

我无法发布我们的SQL查询,但我们使用了3个与我们的正常活动匹配的不同测试用例。在每个测试用例中,我们使用表连接和聚合计算(SUM,AVG等)对几千行执行了几个查询。我们的测试数据库很适合 - 大小约为5GB,行数为几百万。

一些注意事项:对于每个人,我们测试了我的本地计算机,这是一台运行Windows / SQL Server的5年历史的iMac虚拟机(“本地”),SQL Azure Business(“商业”),SQL Azure Premium P1,SQL Azure标准版S2和SQL Azure标准版S1。基本层似乎很慢,我们没有测试它。所有这些测试都是在系统上没有其他活动的情况下完成的。查询没有返回数据,因此希望网络性能不是一个因素。

以下是我们的结果:

测试一次

Local: 1 second
Business: 2 seconds
P1: 2 seconds
S2: 4 seconds
S1: 14 seconds

测试二

Local: 2 seconds
Business: 5 seconds
P1: 5 seconds
S2: 10 seconds
S1: 30 seconds

测试三

Local: 5 seconds
Business: 12 seconds
P1: 13 seconds
S2: 25 seconds
S1: 77 seconds

结论:

在与不同层级合作几天后,我们的团队得出了一些结论:

  • P1似乎与SQL Azure Business处于同一级别。 (P1是价格的10倍)
  • Basic和S1对于除了入门数据库之外的任何东西都太慢了。
  • 业务层是一种共享服务,因此性能取决于服务器上的其他用户。我们的数据库显示最大4.01%CPU,0.77%数据IO,0.14%Log IO,我们遇到了重大性能问题和超时。微软支持部门确认我们“只是在一个非常繁忙的服务器上”。
  • 业务层跨服务器和区域提供不一致的服务。在我们的案例中,我们转移到不同地区的不同服务器,我们的服务恢复正常。 (我们将其视为临时解决方案)
  • S1,S2,P1层似乎在不同地区提供相同的性能。我们测试了West和North Central。
  • 考虑到上述结果,我们通常担心SQL Azure的未来。几年来,业务层对我们来说非常好,但它计划在12个月内停止服务。与业务层相比,新层的价格似乎过高。

我确信有100种方法可以更科学,但我希望这些统计数据可以帮助其他人做好评估。

<强>更新

Microsoft支持向我们发送了一个非常有用的查询来评估您的数据库使用情况。

SELECT
       avg(avg_cpu_percent) AS 'Average CPU Percentage Used',
       max(avg_cpu_percent) AS 'Maximum CPU Percentage Used',
       avg(avg_physical_data_read_percent) AS 'Average Physical IOPS Percentage',
       max(avg_physical_data_read_percent) AS 'Maximum Physical IOPS Percentage',
                   avg(avg_log_write_percent) AS 'Average Log Write Percentage',
       max(avg_log_write_percent) AS 'Maximum Log Write Percentage',
       --avg(avg_memory_percent) AS 'Average Memory Used Percentage',
       --max(avg_memory_percent) AS 'Maximum Memory Used Percentage',
       avg(active_worker_count) AS 'Average # of Workers',
       max(active_worker_count) AS 'Maximum # of Workers'
FROM sys.resource_stats
WHERE database_name = 'YOUR_DATABASE_NAME' AND
start_time > DATEADD(day, -7, GETDATE())

最有用的部分是百分比代表S2实例的百分比。根据Microsoft支持,如果您是100%,那么您使用的是100%的S2,200%将相当于P1实例。

我们现在对P1实例运气很好,虽然价格差异令人震惊。

答案 1 :(得分:12)

我是上面提到的Azure SQL数据库性能测试博客文章的作者。

对于Azure SQL数据库来说,对IOU进行IOPS比较是非常困难的,这就是我在测试中专注于行数和吞吐率(以MB /秒为单位)的原因。

我对使用微软引用的交易费率持谨慎态度 - 他们的基准数据库相当小,例如对于标准层,其容量为250 GB,其S1和S2的基准数据库分别仅为2 GB和7 GB。在这些大小中,我建议SQL Server缓存大部分/大部分数据库,因此他们的基准测试可以避免可能影响现实世界数据库的最糟糕的读取限制。

我添加了一篇关于新服务等级达到一般可用性的新帖子,并对GA的S0和S1周围的性能变化进行了一些估算。

http://cbailiss.wordpress.com/2014/09/16/performance-in-new-azure-sql-database-performance-tiers/

答案 2 :(得分:2)

据我所知,新旧产品之间几乎没有任何映射。旧产品是&#34; web&#34;之间唯一真正不同的产品。和&#34; business&#34;提供的是数据库限制的大小。

但是,在新产品上,每个层都有与之相关的性能指标。因此,为了确定移动现有数据库所需的产品,您需要确定应用程序的性能需求类型。

答案 3 :(得分:2)

在尺寸方面看起来Web和Business在Basic和S1之间。这是一个链接,其中包含与新旧层进行比较的图表。对于橘子来说,这似乎是一个小苹果,所以没有直接的映射。这里还有一个专门针对当前Web和业务层级人员的链接。

Comparison of Tiers

Web and Business Edition Sunset FAQ