流量回放和压测

面对即将到来的短期业务高峰或数据库结构变更(尤其是索引变更)时,您可以通过流量回放与压测功能,确认数据库实例规格是否需要扩容,并验证在真实业务场景下的实际效果,降低上线后引发故障的风险。此外,在数据库发生故障且无法定位原因时,可以利用克隆库复现故障场景,以便更好地定位故障原因。

前提条件

  • 源数据库支持:

    • RDS MySQL

    • PolarDB MySQL版

      说明

      不支持PolarDB MySQL版企业版单节点实例。

    • PolarDB-X 2.0。

  • 目标数据库实例为:

    • RDS MySQL

    • PolarDB MySQL版

    • PolarDB-X 2.0。

  • 源数据库实例与目标数据库实例均已接入DAS,详情请参见接入阿里云数据库实例

  • 源数据库实例需开启DAS企业版,详情请参见管理DAS经济版和企业版

    说明

    如果您想分析压测前后,源数据库实例与目标数据库实例上SQL模板的执行性能差异,目标数据库实例也需要开启DAS企业版。SQL模板的执行性能差异可用来应对数据库引擎升级、规格切换等业务场景。

  • 不支持政务云和金融云下的数据库实例。

说明

PolarDB-X 2.0目前仅支持华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)和新加坡地域。

适用场景

  • 为应对即将到来的短期业务高峰,验证当前数据库实例规格是否需要扩容。

  • 数据库结构变更后(尤其是索引变更后),验证在真实业务场景下的效果,降低变更上线后引发故障的风险。

  • 数据库发生故障后,无法在发生故障时定位到原因,可以通过智能压测功能,在克隆库上复现故障场景,定位故障原因。

注意事项

  • 为减少网络延迟对压测的影响,压测客户端和目标实例需要在同一个地域。

    说明

    建议将压测客户端和目标实例放入同一个专有网络。

  • 压测对源实例没有影响,无需在业务低峰期操作。关于压测部署的详细信息,请参见压测客户端部署

  • 进行压测前,检查压测客户端与目标实例间的连通性,确保压测客户端的流量可以正常发送到目标实例。

费用说明

  • DAS企业版购买费用请参见计费概览

  • 压测任务创建后,计费项如下:

    • 若您选择通过备份恢复方式进行数据迁移,系统将根据您选择的目标数据库类型自动创建一个按量付费的数据库实例,费用详情请参见对应数据库的费用说明。

    • 若您在高级设置中选择DAS自动购买和部署,系统将根据源库QPS和压测倍率购买合适规格的按量付费ECS实例,费用详情请参见ECS计费概览

    说明

    由于系统购买了按量付费实例,建议您在压测任务结束后手工删除,避免多收取费用。

操作步骤

  1. 登录DAS控制台

  2. 在左侧导航栏中,单击实例监控

  3. 找到目标实例,单击实例ID,进入目标实例详情页。

  4. 在左侧导航栏单击请求分析 > SQL洞察和审计,然后在右侧打开的页面单击流量回放和压测

  5. 在右侧单击新建任务。在新建任务对话框中,设置以下参数。

    1. 选择任务类型回放流量压测,并输入任务名称

      说明

      请确认该回放流量时间段内,源库的SQL洞察和审计已开启。

    2. 源端信息区域框中,设置以下参数后单击下一步

      配置

      说明

      实例来源

      选择阿里云数据库为目标实例的来源。

      数据库类型

      您的数据库实例类型,您可在如下三种中选择其中一种:

      • MySQL:表示RDS MySQL实例。

      • PolarDB for MySQL:表示PolarDB MySQL版实例。

      • PolarDB-X:表示PolarDB-X 2.0实例。

        说明

        PolarDB-X 2.0目前仅支持华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)和新加坡地域。

      源实例

      选择源实例的实例ID。

      高级设置

      如果您需要对源实例的部分数据库进行智能压测,请单击高级设置,配置目标数据库的数据库账号密码,获取数据库信息后,选择目标数据库进行智能压测。

    3. 目标端表结构和数据生成方式区域框中,设置以下参数。

      配置

      说明

      数据库类型

      目标数据库实例的类型,目前支持:

      • MySQL:表示RDS MySQL实例。

      • PolarDB for MySQL:表示PolarDB MySQL版实例。

      • PolarDB-X:表示PolarDB-X 2.0实例。

        说明

        PolarDB-X 2.0目前仅支持华东1(杭州)、华东2(上海)、华北2(北京)、华南1(深圳)和新加坡地域。

      基准数据迁移

      您可根据源实例基准数据是否已迁移至目标实例,选择以下四种迁移方式:

      • 通过备份恢复:目标实例基于时间点或者备份集克隆源实例。

        说明

        DAS会自动购买和源实例规格一致的按量付费实例,并将备份恢复到该实例。

      • 已完成数据迁移:已经将需要进行流量回放的时间段内源实例的表结构和数据同步至目标实例。

        说明

        目标实例的表结构和数据,应与源实例保持一致,以保证压测流量正常执行。

      • 输入DTS任务ID:已在DTS控制台创建数据迁移传输任务,将源实例的数据同步到目标实例。

        说明

        关于DTS数据迁移,详情请参见数据迁移

      • 创建DTS迁移任务:直接创建数据迁移传输任务,无需到DTS控制台操作。

        说明

        各链路规格对应了迁移链路不同的性能表现,关于如何选择链路规格,详情请参见迁移链路规格说明

      说明
      • 当源实例为阿里云数据库时,您可以选择以上四种方式中的其中一种,由于压测任务创建后,系统会自动购买和源库规格一致的按量付费实例,并将数据恢复到该实例,建议您选择通过备份恢复

      • 当源实例为自建数据库时,仅可选择已完成数据迁移输入DTS任务ID创建DTS迁移任务中的一种。

      还原方式

      选择还原方式,您可以根据需要选择如下一种方式:

      • 按时间点

      • 按备份集

      说明
      • 基准数据迁移通过备份恢复时,需要配置此参数。

      • 若选择还原方式按备份集,需要对DAS服务关联角色进行授权,在跳出的对话框中,单击确定即可。

      选择还原时间/备份集

      根据还原方式选择还原的具体时间或备份集。

      说明

      基准数据迁移通过备份恢复时,需要配置此参数。

      迁移任务ID

      源实例数据同步到目标实例的DTS数据迁移传输任务ID。

      说明

      基准数据迁移输入DTS任务ID时,需要配置此参数。

      DTS迁移任务规格

      选择DTS迁移任务规格。

      说明
      • 基准数据迁移创建DTS迁移任务,需要配置此参数。

      • 各链路规格对应了迁移链路不同的性能表现,关于如何选择链路规格,详情请参见迁移链路规格说明

      目标实例

      选择目标实例,系统默认访问目标实例的主地址。

      说明

      基准数据迁移已完成数据迁移输入DTS任务ID创建DTS迁移任务时,需要配置此参数。

      目标端高权限账号

      目标实例的高权限账号名称和密码。

      说明

      基准数据迁移已完成数据迁移输入DTS任务ID创建DTS迁移任务时,需要配置此参数。

      源端高权限账号

      源端实例的高权限账号名称和密码。

      说明

      基准数据迁移通过备份恢复创建DTS迁移任务时,需要配置此参数。

    4. 压测基础设置区域框中,设置以下参数。

      配置

      说明

      选择回放流量

      选择回放流量的时间段。

      说明

      该时间段内,源实例已开启SQL洞察和审计功能。

      回放速度

      源实例流量在目标实例上的回放速度,如1倍速表示原速回放。 回放倍数必须是正整数,取值:1~30。

      说明

      如果您设置的回放速度超过目标实例规格支持的极限速度,压测任务将按照目标实例支持的极限速度进行回放。

    5. 高级设置区域框中,选择部署压测程序的ECS

      • 您可以选择DAS自动购买和部署,系统将根据源库QPS和压测倍率购买合适规格的按量付费ECS实例。

      • 您也可以通过新增按钮,选择需要部署压测程序的ECS实例,生成部署命令并复制到该实例上运行。并且您还需要执行sudo yum install -y java-1.8.0-openjdk命令在新增的ECS实例上部署Java客户端,客户端版本建议为Java8。

  6. 单击下一步,校验成功后单击确定创建压测任务。

查看智能压测结果

  1. 压测任务创建后,您可以返回任务列表页查看压测任务的详情。

  2. 您可在右侧的操作栏进行如下操作:

    • 单击详情进入智能压测详情页,查看压测任务的执行情况和压测报告,具体说明如下表所示。

      参数

      说明

      概览

      源实例与目标实例在压测任务前后的基本信息对比。

      性能趋势对比

      压测任务前后,在不同性能指标上源实例与目标实例的差异对比。

      SQL对比

      若目标实例在压测前已开启自治功能,可分析压测前后,源实例与目标实例上SQL模板的执行性能差异对比。

      说明

      SQL对比可用来应对数据库引擎升级、规格切换等业务场景。

      参数对比

      源实例与目标实例在重要参数上的差异对比。

    • 若您想提前终止目标压测任务,请单击终止

    • 单击删除即可删除您创建的压测任务。

    ll

后续步骤

  • 当压测任务结束之后,在智能压测详情页,确认无需再次压测时,您可释放对应的压测ECS机器和实例。

  • 如果手动开启了源数据库的SQL洞察和审计,压测结束后,请关闭该功能,详细参照请参见关闭SQL洞察和审计

  • 如果面对即将到来的短期业务高峰,需要扩容数据库实例,您可以根据实例类型开启自动性能扩展或者定时自动弹性伸缩

相关API

API

描述

CreateCloudBenchTasks

创建压测任务。

RunCloudBenchTask

执行压测任务。

StopCloudBenchTask

停止压测任务。

CreateAdamBenchTask

在ADAM上创建压测任务。

DeleteCloudBenchTask

删除压测任务。

DeleteStopGateway

删除已停止的DBGateway元数据。

DescribeCloudbenchTaskConfig

查询压测任务配置信息。

DescribeCloudbenchTask

查询压测任务。

DescribeCloudBenchTasks

查询压测任务列表。

视频教程