Azure SQL的DTU和eDTU到底是个什么鬼
Azure SQL 使用了数据库事务单位 (DTU) 和弹性数据库事务单位 (eDTU)来作为一个计量单位。
但是DTU和eDTU是什么鬼啊?
官方文档这样解释
DTU 是一个资源度量单位,表示保证可用于单一数据库服务层内特定性能级别的单个 Azure SQL 数据库的资源。
DTU是一定比例的 CPU、内存和数据 I/O以及事务日志 I/O的混合度量值,该比例由 OLTP基准工作负荷决定(OLTP基准工作负荷代表真实的 OLTP工作负荷)。
这段话说起来非常的难于理解的,所谓的一定比例的CPU、内存和数据库I/O这个就摸不着头了。 然后这些资源的比例又是按照OLTP的基准工作负荷来决定。OLTP基准工作负荷这个又是一个新东西,参见:https://www.azure.cn/documentation/articles/sql-database-benchmark-overview/
其实DTU简单理解就是衡量Azure提供的SQL服务计算能力的一个指标。这个指标越大,SQL的计算能力越强。如100个DTU比5个DTU就应该是强20倍。
可以从上表上对应于本地数据库的性能采集的指标,可以估算出应该使用什么样级别的AZURE SQL。 当然服务层选择后仍然可以进行更改。
对于自己应用应该用多大规模的DTU,可以进行详细的评估,可以使用下面工具
Azure SQL Database DTU Calculator
关于如何评估,且听下回分解。
所以,DTU这个鬼来说就理解为Azure数据库的性能评估单位 。
那么问题又来了什么是eDTU,DTU虽然不太好理解,但是从构架来说,不外乎就是为应用提供数据库服务,也即是我们常用的模型,使用起来也简单。我们称之为单一数据库。要理解eDTU我们先要讲讲什么是Azure 弹性数据库。
但是在云的时代就有一个典型的问题存在:所有应用几乎都会有峰值和低谷。而单一数据库一旦分配,资源就已经提供,没有高峰和低谷的区别。那么如何解决这样的问题呢?
通常有两个选项:
(1) 基于高峰使用情况过度设置资源,因此需要支付额外的费用;
(2) 为了节省成本而采用低配,但在高峰期间会出现性能下降而导致客户满意度降低。
弹性数据库就是为了解决这样的问题而诞生。弹性池通过确保数据库在需要时获得所需的性能资源来解决此问题。它们在可预测的预算内提供简单的资源分配机制。
其实这样理解,我们可以创建一个弹性的数据库池,而多个数据库使用这个池,充分利用池的资源。池很适合具有特定使用模式的大量数据库。对于给定的数据库,此模式的特征是低平均使用量与相对不频繁的使用高峰。可以加入池的数据库越多,就可以节省更多的成本。具体取决于应用程序使用模式,你可能会看到与使用两个 S3 数据库相同的成本节约。
下图显示了一个数据库示例,该数据库有大量的闲置时间,但也会定期出现活动高峰。这是适合池的使用模式:
在所示的五分钟时间段内,DB1 高峰最高达到 90 个 DTU,但其整体平均使用量低于五个 DTU。在单一数据库中,运行此工作负荷需要 S3 性能级别,但在低活动期间,大多数资源都处在未使用的状态。
池可让这些未使用的 DTU 跨多个数据库共享,因此减少了所需的 DTU 数和总体成本。
以上一个示例为基础,假设有其他数据库具有与 DB1 类似的使用模式。在接下来的两个图形中,4 个数据库和 20 个数据库的使用量分层放在相同的图形上,以说明随时间推移,它们的使用率非重叠的性质:
在上图中,黑线表示跨所有 20 个数据库的聚合 DTU 使用量。其中表明聚合 DTU 使用量永远不会超过 100 个DTU,并指出 20 个数据库可以在此时间段内共享 100 个 eDTU。相比于将每个数据库放在单一数据库的 S3 性能级别,这会导致 DTU 减少 20 倍,价格降低 13倍。
由于以下原因,此示例很理想:
每一数据库之间的高峰使用量和平均使用量有相当大的差异。
每个数据库的高峰使用量在不同时间点发生。
eDTU 将在多个数据库之间共享。
池的价格取决于池的 eDTU。尽管池的 eDTU 单位价格比单一数据库的 DTU 单位价格多 1.5 倍,但池eDTU 可由多个数据库共享,因而所需的 eDTU 总数更少。定价方面和 eDTU 共享的这些差异是池可以提供成本节省可能性的基础。
所以eDTU一个池化DTU的概念,单一数据库性能可以动态的进行调节,而池中的数据库也可以进行添加删除。
更多相关信息和详细信息可以点击“阅读原文”查阅。
内容转载自公众号
Azure SQL的DTU和eDTU到底是个什么鬼相关推荐
- Azure Automation (5) 调整Azure SQL Database DTU
<Windows Azure Platform 系列文章目录> 之前有客户提了需求,在9点以后,把Azure SQL Database DTU提高 在凌晨,把Azure SQL Datab ...
- Azure SQL 数据库中的DTU和eDTU是什么
Max Shen 沈云技术解决方案专家 Azure SQL 使用了数据库事务单位 (DTU) 和弹性数据库事务单位 (eDTU) 来作为一个计量单位. 但是DTU和eDTU 究竟是什么? 在官方文档中 ...
- 一起来玩AZURE SQL(一)AZURE SQL 介绍
1.什么是Azure SQL 在Azure上有PaaS层的SQL 服务,叫做AzureSQL数据库, AzureSQL是什么呢,简单讲就是,你需要使用数据库直接去申请,不关心后端怎么工作,不需要 ...
- 关于 Azure SQL 数据库你不知道的 5 件事
点击上方蓝字关注"汪宇杰博客" 原文:Azure Tips and Tricks 翻译:汪宇杰 Azure SQL Database 如果您喜欢 SQL Server,那么您可能也 ...
- Azure SQL 数据库:服务级别与性能问答
ShawnBice 2014 年 5 月 5 日上午 10:00 几天前,我发表了一篇文章,并就 4 月 24 日发布的适用于Windows Azure SQL 数据库的新服务级别提供了一些预料 ...
- azure不支持哪些语句 sql_排查 Azure SQL 数据库的常见连接问题 - Azure SQL Database | Microsoft Docs...
您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 排查 Azure SQ ...
- Azure SQL性能调优实践
Azure SQL性能调优实践 注:blog具备时效性,所有内容都是在当前时间为准,截止时间2017-6-5 首先,创建了一个测试数据库 MaxAadventureWorkTest 使用了 示例数据库 ...
- 一起来玩AZURE SQL(四)AZURE SQL之逻辑服务器介绍
注:blog具备时效性,所有内容都是在当前时间为准,截止时间2017-5-7 之前的blog中,已经提到过Azure SQL创建时候会先创建一个逻辑Azure SQL服务器,之前我创建了maxt ...
- azure云数据库_如何将MySQL表迁移到Microsoft Azure SQL数据库
azure云数据库 介绍 (Introduction) Today, it is a common practice to migrate our local data to Azure. Somet ...
最新文章
- 中文短文本相似度:WMD
- 做最好的自己,人生十件事(事业,人生,情感)
- 今天开始SOA-阿里dubbo
- .NET Core微服务 权限系统+工作流(一)权限系统
- Python程序可打印今天的年,月和日
- 赵雅智:service_startService生命周期
- Android应用开发—FragmentManager如何管理fragments
- springboot 多线程_机密文档!阿里产出SpringBoot/Cloud,细节爆炸
- 《Web Hacking 101》中的链接整理
- java jsonobject date_如何将Json Passed Date Value分配给Java Date Object
- [转载]Informix平安特征庇护数据的详细方法
- JVM笔记1:Java内存模型及内存溢出
- Tomcat免安装版执行tomcat9.exe闪退
- java解析excel 哪个好_java解析excel
- 【图像评价】基于matlab图像去雾质量评价【含Matlab源码 066期】
- 锐起无盘找不到服务器,锐起无盘出现重启后连接不到服务器
- html遮罩层动画制作,教你用Flash遮罩层制作漂亮的文字效果
- H5唤醒Android App
- python中compile函数_Python compile函数有什么用?
- 【机器视觉】Halcon 18安装教程
热门文章
- XML--使用XML来将字符串分隔成行数据
- C# WPF中添加调试信息查看窗体
- 从代码角度揭示:华为鸿蒙的“套壳”真相!
- “工业互联网平台“将成为工业制造企业的标配
- NET问答: 如何给 ASP.NET Core 配置指定端口 ?
- 【源码解读】Vue与ASP.NET Core WebAPI的集成
- asp.net core中使用cookie身份验证
- 微服务模式下,实现前后端多资源服务调用
- .Net Core In Docker 在容器内编译并发布
- 用.NET进行客户端Web开发?看这个Bootstrap风格的BlazorUI组件库