【压测必要性】
定期迭代业务模块容量数据及时发现问题,为配置优化及成本管理提供数据支撑
1、压测容量不准:基于cvm施压&被压容易遇到端口数,文件描述符,带宽等限制导致tps上不去等问题
2、压测耗时长:依赖多人协同效率极低(sre切换业务镜像,qa施压,开发发布代码,dba确认权限)
3、成本浪费:cvm大部分时间资源闲置
1、引入阿里云pts解决施压环境受限问题
2、引入内网vpc k8s压测集群,动态调整pod数量解决文件描述符及端口数不足问题
3、结合上线发布系统+gitlab,解决cicd代码发布问题
4、调用cloud api接口随时调整node配置及开关机,解决成本浪费问题
【阿里云PTS简介】
一.什么是PTS?
性能测试PTS(Performance Testing Service)是一款性能测试工具。支持按需发起压测任务,可提供百万并发、千万TPS流量发起能力,100%兼容JMeter。提供的场景编排、API调试、流量定制、流量录制等功能,可快速创建业务压测脚本,精准模拟不同量级用户访问业务系统,帮助业务快速提升系统性能和稳定性。
二.操作方法
操作步骤也是十分简单,大致分为4个步骤:
1.配置压测场景
要发起一次性能压测,首先需要创建一个压测场景。一个压测场景包含一个或多个并行的业务(即串联链路),每个业务包含一个或多个串行的请求(即API)。
API是场景压测中的必需元素,用来定义串联链路中每个阶段URL的具体信息。API是由用户行为触发的一条端上请求。例如,电商网站的登录、查询商品详情、提交订单等,分别对应一次用户行为中的多个请求API。
串联链路是一组压测API的有序集合(类似于事务),具有业务含义。
2.配置施压环境
接下来是需要配置压力来源等配置,指定施压来源是哪里的,PTS支持公网和VPC内网两种压力来源。一个是国内公网来源,一个是阿里云的内网,我们可以根据需求来配置
还有IP,host,压测时长等等,这些都可以在【施压环境】进行配置
3.启动压测
接下来我们就可以启动压测,
登录PTS控制台,在左侧导航栏选择性能测试 > 创建场景,然后单击PTS压测。
在创建PTS场景页面完成场景配置、施压配置和高级设置。
单击保存去压测,选择执行周期并单击确定。
数据信息和配置信息区域(图标①):场景实时状态区域,显示当前场景的压测状态,本次压测使用的VUM计量,场景整体发送和接受的报文大小。
单链路(API)实时状态区域(图标②):显示单个API当前的RT、并发等。
单个调速(图标③):单个链路的调速按钮,每次调速实时生效。
批量调速(图标④):全场景维度批量调速的按钮和串联链路维度调速的按钮,每次调速实时生效。
查看图表(图标⑤):单个链路的监控图标,单击此图标,会显示当前链路的请求、响应时间和使用并发数等实时信息。
4.查看压测报告
PTS压测结束之后,系统会自动获取压测过程中的数据,例如压测场景指标、业务详情数据、监控详情数据和API采样日志等,形成压测报告,供您查看和导出。本文介绍压测报告的指标信息以及如何对比压测报告。
三.注意事项
压测前必须在场景中确认好api是否通(确认host是否生效,可以让sre确认服务器是否有请求日志)