【问题标题】:Azure SQL Database DTU metricsAzure SQL 数据库 DTU 指标
【发布时间】:2018-11-27 20:43:31
【问题描述】:

我正在使用 Azure 的指标图表来查看将两个数据库合并到一个池中是否可行。这两个数据库目前位于 S3 层。

第一个图表是过去 30 天内使用 MAX() 聚合函数的“DTU Used”指标的结果。可以观察到,在几个时间间隔内,“DTU Used”接近 100。

第二个是使用 SUM () 聚合函数的“DTU Used”指标的结果。周期与第一张图表相同。

我觉得很奇怪,因为观察第二张图表似乎从未有过接近 100 的使用峰值。甚至两个碱基的“DTU Used”之和似乎也从未达到 40。

我对图形解释有点困惑,我应该相信第二个,在一个 100 eDTU 池中加入这两个数据库似乎可行?

设置 Azure SQL 数据库指标图表以进行此分析的最佳方法是什么?

【问题讨论】:

    标签: sql-server azure azure-sql-database


    【解决方案1】:

    Max() 返回时间段内的最大值。

    Sum() 返回时间段内平均值的总和。 对于单个数据库的 DTU 使用,SUM() 和 Avg() 返回相同的结果。

    假设粒度为 1 分钟,DTU-used 仅在 1 秒内触摸 100%,在其他 59 秒内触摸 60%,函数返回如下:

    最大:100%

    总和(平均):(100 + 59 * 60) / 60 = 61.7%

    弹性池适用于具有不同使用模式的数据库。

    看来你应该考虑缩小规模,而不是迁移到弹性池。

    更多详情,请参考以下内容:

    https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool#when-should-you-consider-a-sql-database-elastic-pool

    【讨论】:

      【解决方案2】:

      请注意,数据库概览边栏选项卡上默认显示的 DTU 图表会呈现聚合指标,并且默认以 1 小时的粒度显示。

      对于更细粒度的指标,在​​数据库菜单中转到监控,然后指标,并在那里构建您自己的 CPU 图表 - 选择 CPU,在 24 小时内,您将有一个选项“时间粒度” - 选择这个为 1分钟,去申请。

      另外请注意,您可以在 1 分钟内选择 CPU 最大值/最小值和平均值。由于 1 分钟(60 秒)是最精细的粒度,如果您选择例如 max,如果 CPU 即使在 1 秒内也达到 100%,那么整分钟都会显示为 100%。也许最好的方法是使用平均值。在这种情况下,从 60 秒开始的平均 CPU 利用率将显示在该 1 分钟指标下。

      我希望这有助于了解 DTU 指标图表在显示所选时间段内的聚合值方面的工作原理,以及如何自定义它以显示 1 分钟的更精细粒度。

      【讨论】:

      • 我想我现在明白了。我使用的时间范围为 30 天,默认的粒度为 6 小时。但我仍然不明白为什么这 6 小时的 Max() 的结果达到 100 DTU,而同一 6 小时的 SUM() 聚合达到 40 DTU。这个 SUM() 聚合了什么?为什么不高于 100?
      猜你喜欢
      • 2014-11-12
      • 1970-01-01
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 2018-11-06
      • 2020-11-14
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多