使用PTS测试AnalyticDB PostgreSQL版实例性能
更新时间:
复制为 MD 格式
AnalyticDB PostgreSQL版支持通过PTS进行性能测试,本文介绍如何通过PTS对AnalyticDB PostgreSQL版实例进行性能测试。
背景信息
性能测试PTS(Performance Testing Service)是一款简单易用,具备强大的分布式压测能力的SaaS压测平台。PTS支持按需发起百万并发、千万TPS流量的压测任务,100%兼容JMeter,提供场景编排、API调试、流量定制、流量录制等功能,可快速创建业务压测脚本,精准模拟不同量级用户访问业务系统,帮助业务快速提升系统性能和稳定性。
费用说明
前提条件
- 已开通性能测试PTS服务,具体信息,请参见开通PTS服务指引。
- 已创建AnalyticDB PostgreSQL版实例,创建方式,请参见创建实例。
本次最佳实践中使用的实例的资源类型为存储弹性模式,引擎版本为6.0。
- AnalyticDB PostgreSQL版实例已加载样本数据库,加载方式,请参见管理样本数据集。
样本数据集的具体信息以及示例查询语句,请参见数据集信息和示例查询。
- AnalyticDB PostgreSQL版的白名单已添加PTS所在的网段。
本次示例中,AnalyticDB PostgreSQL版与PTS在同一VPC中,您可以将VPC网段添加至白名单中,设置白名单的操作,请参见设置白名单。
性能测试
OLAP场景压力测试
- 登录性能测试PTS控制台。
- 在左侧导航栏中选择。
- 在创建场景页面,单击PTS压测。
- 在场景名右侧输入场景名称。
- 在场景配置页签,进行以下配置:
- 单击
图标,删除默认的压测API。 - 将鼠标移动到添加压测节点右侧的
- 单击新建的压测API右侧的
图标,配置基本请求信息。
- 单击连接池配置,配置如下信息。
- 重复步骤b到步骤d,分别为22条查询语句各创建一个压测节点。
- 单击
- 单击施压配置页签,配置压测模式配置。
- 为防止正式压测时由于人为配置错误导致压测失败,可以单击场景调试对测试整个串联链路中各个查询的连通性。
如果出现异常,则表示压测API配置可能出错,建议检查并进行修改。
- 场景调试通过后,单击保存去压测。
OLAP场景压测结果
- 在性能测试PTS控制台左侧导航栏中,选择。
- 单击目标PTS测试右侧操作列下的查看报告。
- 在报告页面,您可以查看成功率、平均RT、TPS、异常数和总请求数。
- 单击明细页签,可以查看整个测试链路中各个API的详细性能数据。
- 切换到AnalyticDB PostgreSQL版控制台,查看实例监控中的实例活跃连接数项目,验证PTS压测计划是否生效,查看方法,请参见实例监控。
可以看到实例的活跃连接如预期计划自动递增(由3并发逐步增加至15并发)。
点查询场景压力测试
- 登录性能测试PTS控制台。
- 在左侧导航栏中选择。
- 在创建场景页面,单击PTS压测。
- 在场景名右侧输入场景名称。
- 在场景配置页签,进行以下配置:
- 单击
图标,删除默认的压测API。 - 将鼠标移动到添加压测节点右侧的
- 单击新建的压测API右侧的
图标,配置基本请求信息。
参数 说明 API名称 自定义API名称。 数据库类型 选择PostgreSQL。 数据库URL 格式为 {HOSTNAME}:{PORT}/{DBNAME},获取{HOSTNAME}:{PORT}的方式如下:在控制台左上角,选择实例所在地域。
找到目标实例,单击实例ID。
- 在基本信息页面的数据库连接信息,即可获取连接地址和端口。
您可以根据需求选择内网地址或外网地址。
{DBNAME}为adb_sampledata_tpch。数据库URL示例如下:
gp-bp1vgqague4lt****-master.gpdb.rds.aliyuncs.com:5432/adb_sampledata_tpch。用户名 AnalyticDB PostgreSQL版示例的数据库账号和密码,获取方式请参见创建和管理用户。 密码 SQL 待执行的SQL语句,本次示例使用如下语句: SELECT O_ORDERKEY, O_CUSTKEY, O_ORDERSTATUS, O_TOTALPRICE, O_ORDERDATE, O_ORDERPRIORITY, O_CLERK, O_SHIPPRIORITY, O_COMMENT FROM public.orders_row WHERE o_orderkey = ?;超时时间 接口的响应超时时间,本次示例取值为50000。 limit 查询语句的最大读取行数,最大值为1000000,本次示例取值为1000。 - 单击占位符,配置如下信息。
参数 说明 Type 本次示例中占位符Type使用 bigint。Value PTS支持若干系统函数,本次示例使用 random函数,即Value值为${sys.random(1,99999999)}。 - 单击连接池配置,配置如下信息。
参数 说明 初始化连接数 初始化时建立的物理连接数量,本次示例取值为1。 获取连接最大等待时间 从连接池中获取空闲连接的等待事件,单位为毫秒,本次示例取值为4000。 最大连接数 最大活跃连接数量和最小活跃连接数量,用以匹配单并发与多并发的多种测试场景。本次示例最大连接数为15,最小连接数为1。 最小连接数
- 单击
- 单击施压配置页签,配置压测模式配置。
参数 说明 压力来源 选择PTS的网络类型,本次示例为阿里云VPC内网。 发起阿里云VPC内网性能测试的更多介绍,请参见如何发起阿里云VPC内网性能测试。
VPC 信息 选择PTS的VPC、安全组以及vSwitch。 说明- PTS的VPC和vSwitch需要与AnalyticDB PostgreSQL版实例的VPC和vSwitch一致。
- 如需新建安全组,请参见创建安全组。
压力模式 选择并发模式(虚拟用户模式)。 递增模式 选择自动递增。 最大并发 设置为您希望达到的最大并发,本次示例为50。 递增百分比 为保证并发数始终为50,本次示例为100%。 单量级持续时长 为保证并发数始终为50,本次示例为1分钟。 压测总时长 总测试时长,本次示例为10分钟。 指定IP数 指定发起压测流量的IP地址数量,即施压机器的数量。本次示例固定为1。 - 为防止正式压测时由于人为配置错误导致压测失败,可以单击场景调试对测试整个串联链路中各个查询的连通性。
如果出现异常,则表示压测API配置可能出错,建议检查并进行修改。
- 场景调试通过后,单击保存去压测。
点查询场景压测结果
- 在性能测试PTS控制台左侧导航栏中,选择。
- 单击目标PTS测试右侧操作列下的查看报告。
- 报告示例如下:
- 切换到AnalyticDB PostgreSQL版控制台,查看节点监控中CPU使用率项目,查看方法,请参见节点监控。
- 切换到AnalyticDB PostgreSQL版控制台,查看实例监控中的实例活跃连接数项目,查看方法,请参见实例监控。
可以看到实例的活跃连接数达到了PTS设置的50并发。
PTS与PGBench的对比
- PTS支持各种类型的数据库测试,并发可动态调整,发起压测的机器数量可自由设置,压测可以不局限于一台机器。
- PTS支持云内网压测,无需单独购买ECS实例作为压测发起机器。
- PTS配置简单,无需进行人工脚本书写,并且支持系统函数。
- PTS支持正式压测前的场景测试。
- PTS支持多样化的场景设置,例如超时时间、连接池设置等。
- PTS可提供全面的压测可视化结果,并详细记录了测试过程中的重要数据。
该文章对您有帮助吗?