你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
DTU 基准
适用于:Azure SQL 数据库
数据库事务单位 (DTU) 是一个度量单位,表示 CPU、内存、读取和写入的混合度量。 使用模拟真实数据库工作负载的基准校准与每个 DTU 度量值相关的物理特性(CPU、内存、IO)。 本文总结了 DTU 基准,并共享了架构、所使用的事务类型、工作负载组合、用户和节奏、缩放规则以及与基准相关的指标的相关信息。
有关基于 DTU 的购买模型的一般信息,请参阅基于 DTU 的购买模型概述。
基准检验摘要
DTU 基准将度量联机事务处理 (OLTP) 工作负载中最常发生的基本数据库操作组合的性能。 尽管在设计基准检验时考虑到了云计算,但已将数据库架构、数据填充和事务设计为广泛代表 OLTP 工作负荷中最常用的基本元素。
将基准检验结果与实际数据库性能进行关联
请务必了解,所有基准只具有代表性和指示性。 使用基准检验应用程序完成的事务率不会与使用其他应用程序可能完成的事务率相同。 基准检验包含不同事务类型的集合,这些事务针对包含一系列表和数据类型的架构运行。 虽然基准执行普遍适用于所有 OLTP 工作负载的相同基本操作,但它并不代表任何特定类别的数据库或应用程序。 基准检验的目标是为在上调或下调计算大小时可预期的数据库相对性能提供合理的指导。
实际上,数据库具有不同的大小和复杂度,会遇到工作负荷的不同组合,并且会以不同方式进行响应。 例如,IO 密集型应用程序可能会更快地达到 IO 阈值,或者 CPU 密集型应用程序可能会更快地达到 CPU 限制。 不能保证任何特定数据库在不断增加的负载下会以与基准检验相同的方式扩展。
下面将更详细地说明基准及其方法。
架构
架构设计为具有足够的多样性和复杂度以支持各种操作。 基准检验针对包含六个表的数据库运行。 这些表分为三个类别:固定大小、缩放和增长。 有两个固定大小表、三个缩放性表和一个增长性表。 固定大小表的行数不变。 缩放性表具有一个与数据库性能成正比的基数,但在基准检验期间不会更改。 增长性表的大小调整在初始加载时与缩放性表类似,但随后在运行基准检验的过程中随着插入和删除行基数会更改。
架构包含数据类型(包括整数、数字、字符和日期/时间)的组合。 架构包含主键和辅助键,但不包含任何外键(即,表之间没有任何引用完整性约束)。
数据生成程序会生成初始数据库的数据。 使用不同策略生成整数和数字数据。 在某些情况下,值在某一范围内随机分布。 在其他情况下,会对一组值进行随机排列以确保维持特定分布。 文本字段从加权单词列表中生成以产生具有真实感的数据。
数据库根据“比例因子”调整大小。 比例因子(简称为 SF)确定缩放性表和增长性表的基数。 如下面的“用户和步调”部分中所述,数据库大小、用户数和最大性能全都相互成比例缩放。
事务
工作负荷由九种事务类型组成,如下表中所示。 每种事务旨在强调数据库引擎和系统硬件中的特定一组系统特征,与其他事务形成高反差。 此方法可更方便地评估不同组件对总体性能的影响。 例如,事务“Read Heavy”将从磁盘生成大量的读取操作。
事务类型 | 说明 |
---|---|
Read Lite | SELECT;在内存中;只读 |
Read Medium | SELECT;大多数在内存中;只读 |
Read Heavy | SELECT;大多数不在内存中;只读 |
Update Lite | UPDATE;在内存中;读写 |
Update Heavy | UPDATE;大多数不在内存中;读写 |
Insert Lite | INSERT;在内存中;读写 |
Insert Heavy | INSERT;大多数不在内存中;读写 |
Delete | DELETE;在内存中和不在内存中的组合;读写 |
CPU Heavy | SELECT;在内存中;相对较高的 CPU 负载;只读 |
工作负荷组合
从具有以下整体组合的加权分布中随机选择事务。 整体组合的读/写比率大约为 2:1。
事务类型 | 组合百分比 |
---|---|
Read Lite | 35 |
Read Medium | 20 |
Read Heavy | 5 |
Update Lite | 20 |
Update Heavy | 3 |
Insert Lite | 3 |
Insert Heavy | 2 |
Delete | 2 |
CPU Heavy | 10 |
用户和步调
基准检验工作负荷由一个工具驱动,该工具通过一组连接提交事务以模拟大量并发用户的行为。 虽然所有连接和事务都是由计算机生成的,但为简单起见我们将这些连接称为“用户”。 虽然每个用户都独立于所有其他用户进行操作,但所有用户都执行相同的步骤循环,如下所示:
- 建立数据库连接。
- 重复执行,直到收到退出通知:
- 随机选择事务(从加权分布中)。
- 执行所选的事务并测量响应时间。
- 等待步调延迟。
- 关闭数据库连接。
- 退出。
随机选择了步调延迟(在步骤 2c 中),但却使用了平均值为 1.0 秒的分布。 因此,每个用户平均每秒最多可以生成一个事务。
缩放规则
用户数由数据库大小(以比例因子单位数表示)确定。 每个五个比例系数单位有一个用户。 由于步调延迟,一个用户平均每秒最多可以生成一个事务。
例如,比例因子为 500 (SF = 500) 的数据库将具有 100 个用户,并且可以实现的最大速率为 100 TPS。 若要驱动更高的 TPS 速率,需要更多的用户和更大的数据库。
度量持续时间
有效地运行基准检验需要稳定状态度量持续时间至少为 1 小时。
指标
基准检验中的关键指标是吞吐量和响应时间。
- 吞吐量是基准检验中至关重要的性能度量值。 吞吐量以每时间单位的事务数的形式报告,计算所有事务类型。
- 响应时间是性能可预测性的度量值。 响应时间约束因服务等级而异,服务等级越高,响应时间要求越严格,如下所示。
服务等级 | 吞吐量度量值 | 响应时间要求 |
---|---|---|
高级 | 每秒事务数 | 0\.5 秒时达到 95% |
标准 | 每分钟事务数 | 1\.0 秒时达到 90% |
基本 | 每小时事务数 | 2\.0 秒时达到 80% |
注意
响应时间指标特定于 DTU 基准。 其他工作负载的响应时间取决于工作负载,会有所不同。
后续步骤
参阅以下文章,详细了解如何购买模型以及相关概念: