RDS MySQL Serverless资源与负载自适应
1. 选择实验资源
本实验支持实验资源体验、开通免费试用、个人账户资源三种实验资源方式。
在实验开始前,请您选择其中一种实验资源,单击确认开启实验。
- 如果您选择的是实验资源体验,资源创建过程需要3~5分钟(视资源不同开通时间有所差异,ACK等资源开通时间较长)。完成实验资源的创建后,在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等)。
说明:实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体的步骤、目的,真正开始做实验时再进行创建。
- 如果您选择的是开通免费试用,下方卡片会展示本实验支持的试用规格,可以选择你要试用的云产品资源进行开通。您在实验过程中,可以随时用右下角icon唤起试用卡片。
说明:试用云产品开通在您的个人账号下,并占用您的试用权益。如试用超出免费试用额度,可能会产生一定费用。
阿里云支持试用的产品列表、权益及具体规则说明请参考开发者试用中心。
2. 创建实验资源
本步骤指导您如何创建云服务器ECS和RDS MySQL Serverless。
如果您已创建云服务器ECS和RDS MySQL Serverless版实例,请您选择个人账户资源,并跳过本小节,直接进行实验操作即可。
本步骤仅作为参考使用,您可以根据需求自行选择配置。
如果您选择的是开通免费试用,参考以下步骤创建云服务器ECS和RDS MySQL Serverless。
- 在本实验页面下方卡片会展示本实验支持的试用规格,依次选择一个试用规格,单击立即试用。
- 在云服务器ECS试用开通页面,根据页面引导进行开通云服务器ECS,其中操作系统选择Alibaba Cloud Linux 2.1903 64位,地域需要与云数据库RDS MySQL Serverless在同一地域下,其他配置根据您的需求自行选择即可。
- 在云数据库RDS MySQL Serverless试用开通页面,根据页面引导进行开通云数据库RDS MySQL Serverless,其中数据库类型选择MySQL,数据库版本号选择8.0,地域需要与云服务器ECS在同一地域下,其他配置根据您的需求自行选择即可。
如果您选择的是选择个人账户资源,参考以下步骤创建云服务器ECS和RDS MySQL Serverless。
- 创建云服务器ECS。
1.1 前往云服务器ECS控制台,在概览页面的我的资源区域,单击创建实例。
1.2 在云服务器ECS购买页面,根据页面引导进行开通云服务器ECS,其中操作系统选择Alibaba Cloud Linux 2.1903 LTS 64位,开启分配公网IPv4地址,地域需要与云数据库RDS MySQL Serverless在同一地域下,其他配置根据您的需求自行选择即可。
- 创建云数据库RDS MySQL Serverless。
2.1 前往云数据库RDS创建页面。
2.2 在云数据库RDS创建页面,根据页面引导进行开通云数据库RDS MySQL Serverless,其中计费方式选择Serverless,数据库类型选择MySQL,数据库版本号选择8.0,资源扩缩范围(RCU)选择0.5~2RCU,地域需要与云服务器ECS在同一地域下,其他配置根据您的需求自行选择即可。
3. 配置RDS Serverless版实例
本步骤将指导您在RDS MySQL Serverless版实例上创建用于压测的数据库和账号,并配置白名单实现ECS访问,获取数据库访问地址等。
- 登录云数据库RDS控制台。
1.1 双击打开远程桌面的Chromium网页浏览器。
1.2 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码到用户密码输入框,单击登录。
1.3 复制下方地址,在Chromium网页浏览器打开新页签,粘贴并访问云数据库RDS控制台。
https://rdsnext.console.aliyun.com/
1.4 在左侧导航栏中,单击实例列表。
1.5 在顶部菜单栏,选择资源所在地域。例如下图中,地域切换为华东1(杭州)。
返回如下页面,您可看到云起实验室为您提供的RDS MySQL Serverless版实例资源。
- 创建用于压测的数据库。
2.1 在实例列表页面,单击实例ID,进入实例基本信息页面,在左侧导航栏单击数据库管理,可以创建数据库。
2.2 本实验已经预先创建好需要的测试数据库,您可以通过云产品资源列表信息以及控制台查看到数据库名称,无需手动创建测试数据库。数据库手工创建步骤如下。
- 数据库(DB)名称:输入数据库名称,例如serverless。
- 支持字符集:默认设为utf8。
- 备注说明:非必填。用于备注该数据库的相关信息,便于后续数据库管理,最多支持256个字符。
- 创建账号及授权。
3.1 在左侧导航栏单击账号管理,可以创建数据库帐号,并完成授权。
3.2 本实验已经预先创建好需要的测试数据库账号,您可以通过云产品资源列表信息以及控制台查看到数据库账号、密码,无需手动创建测试数据库账号。数据库账号手工创建步骤如下。
- 数据库账号:输入数据库账号名称,例如test_user。
- 账号类型:选择普通账号。
- 授权数据库:将上一步中创建的数据库添加至已授权数据库列表中,并设置权限为读写(DDL+DML)。
- 密码:输入账号密码,例如Password123。
- 确认密码:再次输入账号密码。
- 白名单授权。
为确保数据安全,云数据库RDS默认采用白名单策略,仅支持白名单内的客户端访问。您可以通过实验室云产品资源查看已经预创建用于访问测试的ECS实例内网IP地址信息,并将服务器IP添加至RDS白名单分组内,手动操作如下截图。
说明:本实验已经自动将测试ECS服务器的内网IP添加至RDS Serverless实例白名单,您无需手动操作。
- 获取数据库访问地址。
本实验使用ECS服务器通过RDS Serverless内网地址访问数据库,可以通过RDS实例的数据库连接页面,查看数据库的内网地址。
说明:本实验RDS实例内网连接地址信息,已经通过云产品资源列表提供,您可以直接快速复制。
4. 配置RDS Serverless版实例
本步骤将指导您在RDS MySQL Serverless版实例上创建用于压测的数据库和账号,并配置白名单实现ECS访问,获取数据库访问地址等。
- 前往云数据库RDS控制台。
- 在左侧导航栏中,单击实例列表。
返回如下页面,您可看到刚刚创建的RDS MySQL Serverless版实例资源。
- 创建用于压测的数据库。
3.1 在实例列表页面,单击实例ID,进入实例基本信息页面,在左侧导航栏单击数据库管理,可以创建数据库。
3.2 在创建数据库对话框中,根据如下说明配置数据库,单击创建。
参数说明:
- 数据库(DB)名称:输入数据库名称,例如serverless。
- 支持字符集:默认设为utf8。
- 备注说明:非必填。用于备注该数据库的相关信息,便于后续数据库管理,最多支持256个字符。
- 创建账号及授权。
4.1 在左侧导航栏单击账号管理,可以创建数据库帐号,并完成授权。
4.2 在创建账号对话框中,根据如下说明配置账号,单击确定。
- 数据库账号:输入数据库账号名称,例如test_user。
- 账号类型:选择普通账号。
- 授权数据库:将上一步中创建的数据库添加至已授权数据库列表中,并设置权限为读写(DDL+DML)。
- 密码:输入账号密码,例如Password123。
- 确认密码:再次输入账号密码。
- 白名单授权。
为确保数据安全,云数据库RDS默认采用白名单策略,仅支持白名单内的客户端访问。
您需要将云服务器ECS的内网IP添加至RDS白名单分组内,手动操作如下截图。
- 获取数据库访问地址。
本实验使用云服务器ECS通过RDS Serverless内网地址访问数据库,可以通过RDS实例的数据库连接页面,查看数据库的内网地址。后续步骤需要使用数据库的内网地址
5. 通过ECS终端插入数据并开始压测
本步骤将指导您在配置完成RDS Serverless版实例后,通过使用ECS终端,向RDS数据库插入数据和进行压测。
- 在实验室页面右侧的功能栏中,单击 图标,切换至Web Terminal。Web Terminal,即ECS终端,已自动通过ECS的弹性IP地址连接至ECS。
- 参考说明在本地修改如下命令中的部分参数取值(确保实例连接地址、数据库帐号、密码信息准确),将正确的命令字符串复制到ECS终端内执行,向数据库中插入数据。
sysbench --threads=128 --time=240 --mysql_host=rm-xxxxxxx.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-db=serverless --mysql-user=test_user --mysql-password=Password123 /usr/share/sysbench/oltp_read_write.lua --tables=10 --table_size=10000 --report-interval=1 prepare
参数说明:
- mysql_host:RDS Serverless版实例的内网地址。本实验RDS实例内网连接地址信息,已经通过云产品资源列表提供,您可以直接快速复制。
- mysql-port:RDS Serverless版实例的内网端口,默认为3306。
- mysql-db:为RDS Serverless版实例创建的数据库名称,例如serverless。
- mysql-user:为RDS Serverless版实例创建的账号,如test_user。
- mysql-password:为RDS Serverless版实例创建的账号的密码,如Password123。
返回如下结果,表示数据正在插入中,请你耐心等待大约1分钟。
- 参考说明在本地修改如下命令中的部分参数取值(确保实例连接地址、数据库帐号、密码信息准确),将正确的命令字符串复制到ECS终端内执行,进行数据库压测。
sysbench --threads=128 --time=240 --histogram=on --mysql_host=rm-xxxxxxx.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-db=serverless --mysql-user=test_user --mysql-password=Password123 /usr/share/sysbench/oltp_read_write.lua --report-interval=1 --tables=10 --table_size=10000 run
参数说明:
- mysql_host:RDS Serverless版实例的内网地址。本实验RDS实例内网连接地址信息,已经通过云产品资源列表提供,您可以直接快速复制。
- mysql-port:RDS Serverless版实例的内网端口,默认为3306。
- mysql-db:为RDS Serverless版实例创建的数据库名称,例如serverless。
- mysql-user:为RDS Serverless版实例创建的账号,如test_user。
- mysql-password:为RDS Serverless版实例创建的账号的密码,如Password123。
返回结果如下,表示压测已完成。
6. 通过ECS终端插入数据并开始压测
本步骤将指导您在配置完成RDS Serverless版实例后,通过使用ECS终端,向RDS数据库插入数据和进行压测。
- 在实验室页面右侧的功能栏中,单击 图标,切换至Web Terminal。
如您选择的是个人资源/免费试用,需输入ECS登录的用户名和密码进行登录。
- 执行如下命令,安装sysbench压测软件。
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash sudo yum -y install sysbench
- 参考说明在本地修改如下命令中的部分参数取值(确保实例连接地址、数据库帐号、密码信息准确),将正确的命令字符串复制到ECS终端内执行,向数据库中插入数据。
sysbench --threads=128 --time=240 --mysql_host=rm-xxxxxxx.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-db=serverless --mysql-user=test_user --mysql-password=Password123 /usr/share/sysbench/oltp_read_write.lua --tables=10 --table_size=10000 --report-interval=1 prepare
参数说明:
- mysql_host:RDS Serverless版实例的内网地址。。
- mysql-port:RDS Serverless版实例的内网端口,默认为3306。
- mysql-db:为RDS Serverless版实例创建的数据库名称,例如serverless。
- mysql-user:为RDS Serverless版实例创建的账号,如test_user。
- mysql-password:为RDS Serverless版实例创建的账号的密码,如Password123。
返回如下结果,表示数据正在插入中,请你耐心等待大约1分钟。
- 参考说明在本地修改如下命令中的部分参数取值(确保实例连接地址、数据库帐号、密码信息准确),将正确的命令字符串复制到ECS终端内执行,进行数据库压测。
sysbench --threads=128 --time=240 --histogram=on --mysql_host=rm-xxxxxxx.rwlb.rds.aliyuncs.com --mysql-port=3306 --mysql-db=serverless --mysql-user=test_user --mysql-password=Password123 /usr/share/sysbench/oltp_read_write.lua --report-interval=1 --tables=10 --table_size=10000 run
参数说明:
- mysql_host:RDS Serverless版实例的内网地址。
- mysql-port:RDS Serverless版实例的内网端口,默认为3306。
- mysql-db:为RDS Serverless版实例创建的数据库名称,例如serverless。
- mysql-user:为RDS Serverless版实例创建的账号,如test_user。
- mysql-password:为RDS Serverless版实例创建的账号的密码,如Password123。
返回结果如下,表示压测已完成。
7. 观测RCU变化趋势
本步骤将指导您在执行压测后,前往RDS Serverless版实例的详情页,查看RCU变化趋势。
说明 :
- RCU(RDS Capacity Unit)为计费单位,一个RCU的性能约等于1核2 GiB规格的实例。从观测RCU的变化趋势可以得出,RDS Serverless可以实现动态计费。
- 本实验所创建RDS Serverless实例资源扩缩范围(RCU)为0.5-5。
- 本教程以在基本信息页查看RCU变化趋势为例,您也可以前往监控与报警页面查看RCU变化趋势。在基本信息页和监控与报警页查看RCU变化趋势,会有延迟,请您稍等片刻并刷新页面。
- 切换至远程桌面。在数据库连接页面,单击左侧导航栏的基本信息。在基本信息页面的数据库容量区域,您可以观测到RCU的变化趋势。
说明:
- 压测开始前,RCU保持在0.5。该阶段实例按照0.5 RCU进行收费。
- 开始压测后,RCU从0.5快速上升至1.3,该阶段实例按照0.5至1.3 RCU的变化进行动态收费。
- 压测结束后,RCU从1.3降回0.5。降回0.5后,实例又按照0.5 RCU进行收费。
- 调整RCU扩缩范围,观察RCU变化趋势。在基本信息页面的配置信息区域,单击调整弹性设置。
例如,在调整弹性设置面板,可以将资源扩缩范围(RCU)的最小值从0.5改为1,上限调整为8,单击确定。
返回如下页面,等待运行状态变为运行中,表示RCU扩缩完成。您可以继续观察在压测情况下,RCU变化。
8. 观测RCU变化趋势
本步骤将指导您在执行压测后,前往RDS Serverless版实例的详情页,查看RCU变化趋势。
说明 :
- RCU(RDS Capacity Unit)为计费单位,一个RCU的性能约等于1核2 GiB规格的实例。从观测RCU的变化趋势可以得出,RDS Serverless可以实现动态计费。
- 本实验所创建RDS Serverless实例资源扩缩范围(RCU)为0.5-2。
- 本教程以在基本信息页查看RCU变化趋势为例,您也可以前往监控与报警页面查看RCU变化趋势。在基本信息页和监控与报警页查看RCU变化趋势,会有延迟,请您稍等片刻并刷新页面。
- 切换至云数据库RDS控制台页签。在左侧导航栏,单击基本信息。在基本信息页面的数据库容量区域,您可以观测到RCU的变化趋势。
说明:
- 压测开始前,RCU保持在0.5。该阶段实例按照0.5 RCU进行收费。
- 开始压测后,RCU从0.5快速上升至2,该阶段实例按照0.5至2 RCU的变化进行动态收费。
- 压测结束后,RCU从2降回0.5。降回0.5后,实例又按照0.5 RCU进行收费。
- 调整RCU扩缩范围,观察RCU变化趋势。在基本信息页面的配置信息区域,单击调整弹性设置。
例如,在调整弹性设置面板,可以将资源扩缩范围(RCU)的最小值从0.5改为1,单击确定。
返回如下页面,等待运行状态变为运行中,表示RCU扩缩完成。您可以重新在云服务器ECS中执行压测,继续观察在压测情况下RCU的变化。
9. 结束实验
在完成实验之后,若您想保留实验相关的云产品资源,请随时关注账户扣费情况。若您不想保留实验相关的云产品资源,释放云产品资源即可。
实验地址:https://developer.aliyun.com/adc/scenario/0bdd43fe52924de4ba3fd0c86f67dcbf