Azure SQL 数据库“DTU 百分比”指标
Posted
技术标签:
【中文标题】Azure SQL 数据库“DTU 百分比”指标【英文标题】:Azure SQL Database "DTU percentage" metric 【发布时间】:2014-11-12 10:30:11 【问题描述】:使用新的Azure SQL Database tier structure,监控您的数据库“DTU”使用情况以了解是升级还是降级到另一层似乎很重要。
在阅读Azure SQL Database Service Tiers and Performance Levels时,它只谈论监控CPU、数据和日志的百分比使用率。
但是,当我添加新指标时,我还有一个 DTU 百分比 选项:
我在网上找不到任何关于此的信息。这本质上是对其他 DTU 相关指标的总结吗?
【问题讨论】:
【参考方案1】:DTU 是衡量服务层性能的单位,是多个数据库特征的汇总。每个服务层都有一定数量的 DTU 分配给它,这是一种比较一个层与另一个层的性能水平的简单方法。
Database Throughput Unit (DTU): DTU 提供了一种方法 描述基本性能水平的相对容量, 标准和高级数据库。 DTU 基于混合度量 CPU,内存,读取和写入。随着 DTU 的增加,提供的功率 由性能水平提高。例如,性能水平 具有 5 个 DTU 的功率是具有 1 个 DTU 的性能级别的五倍 DTU。最大 DTU 配额适用于每台服务器。
DTU 配额适用于服务器,而不是单个数据库,每个服务器最多有 1600 个 DTU。 DTU% 是您的特定数据库正在使用的单位百分比,似乎这个数字可以超过服务层的 DTU 等级的 100%(我假设服务器的限制)。此百分比数字旨在帮助您选择合适的服务层级。
从this announcement底部向下:
例如,如果您的 DTU 消耗量显示为 80%,则 表示它正在以 S2 限制的 80% 的速率消耗 DTU 数据库会有。如果您在此视图中看到大于 100% 的值 这意味着您需要比 S2 更大的性能层。
例如,假设您看到 300% 的百分比值。这 告诉您您使用的资源是实际使用量的三倍 在 S2 中可用。要确定合理的起始尺寸,请比较 S2 中可用的 DTU(50 个 DTU)具有下一个更大的尺寸(P1 = 100 个 DTU 或 S2 的 200%,P2 = 200 个 DTU 或 S2 的 400%)。因为你 处于 S2 的 300%,您希望从 P2 开始并重新测试。
【讨论】:
我正在搜索,但仍然没有找到,如果我们已经在某个新层上,这个 DTU 百分比会显示什么?就像我在 S0 上一样,DTU 百分比现在是显示 S0 图还是仍然显示“与 s2 相比”?这真的很简单,不清楚。 @SumitGupta 当您更改层级时,图表会重置/清空,因此您无需查看旧数据,新层级 DTU 比例立即生效。 我目前正在使用 Azure SQL,并且数据库很少。您在此处提到的每台服务器的配额限制不正确,或者至少已过时。 DTU 配额由特定于每个数据库而非服务器的定价层确定。也许您引用的参考链接在您发布后已更改。 ...还是我错过了什么?谢谢。【参考方案2】:评论还不够酷,但关于@vladislav 的评论,原始文章已经相当老了。这是关于 DTU 的更新文档,这将有助于回答 OP 的问题。
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-what-is-a-dtu
【讨论】:
此链接是 Azure 门户网站提供的一个回答“什么是 DTU”的问题。谢谢你。【参考方案3】:根据本文档,此 DTU 百分比由以下查询确定:
SELECT end_time,
(SELECT Max(v)
FROM (VALUES (avg_cpu_percent), (avg_data_io_percent),
(avg_log_write_percent)) AS
value(v)) AS [avg_DTU_percent]
FROM sys.dm_db_resource_stats;
看起来像 avg_cpu_percent
、avg_data_io_percent
和 avg_log_write_percent
的最大值
参考:
https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-resource-stats-azure-sql-database
【讨论】:
采购模型页面上显示了相同的公式(英文!)docs.microsoft.com/en-us/azure/azure-sql/database/…【参考方案4】:DTU 只不过是 CPU、内存和 IO 的混合体。当这三个都非常清楚时,为什么我们需要混合?因为我们想要一个功率单位。但它在许多方面仍然令人困惑。 例如:如果我只是增加内存会增加功率(DTU)吗?如果是,DTU 怎么可能是混合体?是的。在这种内存增加的情况下,根据 jyong 给出的答案中的查询,DTU 将相当于内存(因为我们增加了它)。 MS 甚至有一个基于这个 DTU 的定价模型,它提出了很多问题。
由于这些困惑和问题,MS 希望引入另一种选择。 我们已经在内部部署了一些规范,为什么我们不能使用它们?因此,“vCore 定价模型”诞生了。在这个模型中,我们可以看到 RAM 和 CPU。但不是在 DTU 模型中。
DTU 的反驳观点是,DTU 度量是使用模拟真实世界数据库工作负载的基准来校准的。而且我们不再在内部部署了;)。是的,它的设计考虑了云计算(但也用于 OLTP 工作负载)。
但这还不是全部。现在我们正在输入定价模型,等式发生了变化。现在的问题是关于钱和捆绑包(包括所有功能)。这里 DTU 有一些优势(在我看来),但拥有许多现有许可证的企业会不同意。
DTU 有一个定价(计算 + 存储 + 备份)。更简单也可以 从较低的价格开始。 vCore 具有不同的定价(计算、存储)。软件保障 在这里可用。企业将拥有本地许可证,这可以很容易地移植到这里(因此他们可以以比 DTU 型号更低的价格获得大型机器)。此外,他们承诺多年并获得额外折扣。我们可以在需要时在两者之间切换,所以如果不确定从 DTU(基本/标准/高级)开始。
我们如何知道要使用哪个定价层?转到如下所示的配置菜单:(在右侧/左侧,您可以在两者之间切换)
即使 Vcore 是更大的“机器”并且对于更大的事情,成本有时对企业组织来说可能更便宜。这是一个证明。 DTU 售价 147 美元。但 Vcore 的价格为 111 美元。那是因为您可以承诺 3 年(但仍按月付费),还因为许可证重复使用选项(企业将拥有本地许可证)。
这比直接回答问题有点过分,但我将继续通过回答“如何在 DTU 中的不同选项之间进行选择,更不用说在 DTU 和 vCore 之间进行选择”来完成这一点。这个beautiful blog 回答了这个问题,这个流程图解释了这一切
【讨论】:
内容丰富!来自 azure 门户的屏幕截图特别有用。【参考方案5】:要检查您的服务的准确使用情况,无论是免费(始终免费或 12 个月免费)还是即用即付,请务必监控使用情况,以便提前了解所产生的费用或何时升级您的服务层级。
要查看您的免费服务使用情况及其限制,请在 Portal 中搜索,使用“订阅”搜索并单击它。您将看到您使用的每项服务的详细信息。
如果是 Microsoft 提供的免费 azure,您可以查看每个 azure 所产生的费用。
访问Check usage of free services included with your Azure free account
希望这对某人有所帮助!
【讨论】:
以上是关于Azure SQL 数据库“DTU 百分比”指标的主要内容,如果未能解决你的问题,请参考以下文章
转载用sql语句计算出mysql数据库的qps,tps,iops性能指标