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的概念,单一数据库性能可以动态的进行调节,而池中的数据库也可以进行添加删除。

 

更多相关信息和详细信息可以点击“阅读原文”查阅。

内容转载自公众号

微软中国MSDN
微软中国MSDN
了解更多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssm(Spring+Spring mvc+mybatis)Service层接口——IDeptService

/** * Title: IDeptService.java * Package org.service * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-12-26 下午9:10:12 * version V1.0 */ package org.service;import org.dao.IDeptDao;/** * * 项目名称&…

centos5.9 mysql_CentOS 5.9系统服务器使用yum安装Apache+PHP+MySQL环境

Centos 里的 yum 在线安装很慢.以下是替换为中国CentOS镜像服务器!中国官方镜像网站: http://centos.ustc.edu.cn//* 使用说明 */cd /etc/yum.repos.d[进入yum.repos.d目录]mv CentOS-Base.repo CentOS-Base.repo.save[修改源文件名称备份]wget http://centos.ustc.edu.cn/Cent…

2015蓝桥杯省赛---java---B---1(三角形面积)

题目 三角形面积 解法 数学方法,直接求三角形的面积 88 - (82)/2 - (46)/2 - (84)/2 64 - (81216) 64 - 36 28 答案 28

Spring 自动装配 ‘byType’

转载自 Spring 自动装配 ‘byType’ Spring 自动装配 ‘byType’ 这种模式由属性类型指定自动装配。Spring 容器看作 beans,在 XML 配置文件中 beans 的 autowire 属性设置为 byType。然后,如果它的 type 恰好与配置文件中 beans 名称中的一个相匹配…

ssm(Spring+Spring mvc+mybatis)Service层实现类——DeptServiceImpl

/** * Title: DeptServiceImpl.java * Package org.service.impl * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-12-26 下午9:19:09 * version V1.0 */ package org.service.impl;import java.util.List;import org.…

深入理解Async/Await

C# 5 Async/Await 语法特性,极大地简化了异步编程,但我们知道,异步编程的基本原理并没有发生根本改变。也就是说,当一些复杂的东西看起来很简单时,它通常意味着有一些有趣的事情在背后发生。在计算机程序设计语言领域&…

c mysql 编码_mysql编码转换 mysql编码设置详解

查看mysql编码:一、 代码示例:mysql> show variables like character_set_%;------------------------------------------------------| variable_name | value |------------------------------------------------------| character_set_client | latin1 || cha…

2015蓝桥杯省赛---java---B---2(立方变自身)

题目 立方变自身 分析 简单枚举 i^3 99之后&#xff0c;数字越大&#xff0c;数字之和越不可能等于其自身。 代码 package com.atguigu.TEST;public class Demo01 {private static int ans;public static void main(String[] args) { // 6for (int i 1; i < 99; i) {…

Spring 由构造函数自动装配

转载自 Spring 由构造函数自动装配 Spring 由构造函数自动装配 这种模式与 byType 非常相似&#xff0c;但它应用于构造器参数。Spring 容器看作 beans&#xff0c;在 XML 配置文件中 beans 的 autowire 属性设置为 constructor。然后&#xff0c;它尝试把它的构造函数的参数…

ssm(Spring+Spring mvc+mybatis)Spring配置文件——applicationContext-servlet.xml

<?xml version"1.0" encoding"UTF-8"?> <beansxmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:p"http://www.springframework.org/schema/p"xm…

【南京】.Net 开源基础服务线下技术交流会

南京地区的.net开发人员对基础服务这块感兴趣的&#xff0c;欢迎大家参加及会后继续交流&#xff0c;踊跃参与&#xff01;若对基础服务相关有深度技术交流的&#xff0c;后续交换联系方式&#xff0c;可一起深度合作。 .NET技术行业落地分享交流会 邀请南京地区.NET技术专家和…

mysql 语句块语法_MySQL ------ MySQL常用语句的语法 (三十四)

MySQL常用的语句语法注意&#xff1a;1、 | 符号用来指出几个选中中的一个&#xff0c;因此NULL | NOT NULL 表示给出null 或 not null2、包含在方括号中的关键字或子句是可选的(如 [like this])3、既没有列出所有的MySQL语句&#xff0c;也没有列出每一条子句和选项4、大写的表…

ssm(Spring+Spring mvc+mybatis)Spring配置文件——applicationContext.xml

<?xml version"1.0" encoding"UTF-8"?> <beansxmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:p"http://www.springframework.org/schema/p"xm…

图的广度优先算法+遍历

图解 代码实现 package com.atguigu.graph;import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList;/*** 创建人 wdl* 创建时间 2021/4/2* 描述*/ public class Graph {private ArrayList<String> vertexList;//存储顶点集合private int[][…

Spring @Required 注释

转载自 Spring Required 注释 Spring Required 注释 Required 注释应用于 bean 属性的 setter 方法&#xff0c;它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中&#xff0c;否则容器就会抛出一个 BeanInitializationException 异常。下面显示的是一个使用 Requir…

vue父子组件生命周期顺序_vue父子组件生命周期执行顺序

Parent-- Child1-- Child2装载parent beforeCreateparent createdparent beforeMountchild1 beforeCreatechild1 createdchidl1 beforeMountchild2 brforeCreatechild2 createdchild2 beforeMountchild1 mountedchild2 mountedparent mounted更新parent beforeUpdatechild1 bef…

.Net异步编程知多少

1. 引言 最近在学习Abp框架&#xff0c;发现Abp框架的很多Api都提供了同步异步两种写法。异步编程说起来&#xff0c;大家可能都会说异步编程性能好。但好在哪里&#xff0c;引入了什么问题&#xff0c;以及如何使用&#xff0c;想必也未必能答的上来。 自己对异步编程也不是很…

指纹识别开发1.0

在不久之前&#xff0c;用java和C#分别开发了个人脸识别&#xff0c;感觉挺不错的&#xff0c;于是脑袋一发热&#xff0c;想了想能不能搞个指纹识别&#xff0c;答案当然是能&#xff0c;那么问题来了&#xff0c;在人脸识别的时候可以借助自带摄像头提取你的face&#xff0c;…

Spring @Autowired 注释

转载自 Spring Autowired 注释 Spring Autowired 注释 Autowired 注释对在哪里和如何完成自动连接提供了更多的细微的控制。 Autowired 注释可以在 setter 方法中被用于自动连接 bean&#xff0c;就像 Autowired 注释&#xff0c;容器&#xff0c;一个属性或者任意命名的可…

DFS VS BFS

实际案例 代码实现 package com.atguigu.graph;import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList;/*** 创建人 wdl* 创建时间 2021/4/2* 描述*/ public class Graph {private ArrayList<String> vertexList;//存储顶点集合private in…