最近在阿里云搭了一个博客,用阿里云提供的PTS对网站做了一下压测,现在把压测的步骤分享出来,有类似做网站或外贸电商的也可以参考下(产品部署步骤省略,只有压测和性能分析)。
所用云产品如下(长期使用选择包年可享受一定官网优惠):
云产品(华北5) | 规格 |
---|---|
RDS(MySQL5.6高可用) | 1C2G |
SSL | 免费证书 |
CDN | 按量 |
OSS | 按量 |
云监控 | 免费版 |
PTS | 新用户体验版 |
一、确定要测试的页面和访问流程
本次要测试的是网站首页和打开第一条产品页的访问速度,如下所示首页:
详情页:
二、进入PTS管理控制台
1、添加场景
2、添加被测URL
我们是模拟用户访问首页后,再进入到详情页,所以要添加两个URL(如果有多个页面,可以按访问页面先后顺序进行添加)
3、选择施压配置
选择施压配置,本次选择的是“并发模式”
- 并发模式:是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。
- RPS模式:(Requests Per Second)是指每秒请求数。从服务端的角度出发,直接衡量系统的吞吐能力,免去并发到 RPS 的繁琐转化,一步到位。
具体区别可参考官方文档:https://help.aliyun.com/document_detail/70480.html
在这里,我们设置最大并发为100,递增百分比为默认,持续时长为5分钟,考虑到首页访问人数可能会多于详情页,故设置“最大并发权重”为50和30,保存配置。
4、调试场景、保存去压测
可根据业务访问情况,在晚上或业务低峰时进行压测。
5、生成测试任务
6、开始压测,压测完成会生成压测报告。
三、云监控篇
压测开始后,到云监控看资源的使用状态,我主要关心的是CPU、内存和网络.
在主机监控中找到我们压测的ECS
压测开始后,我们可以看到CPU和系统平均负责都呈上升趋势。
在同一个页面继续往下拉,我们可以看到网络和TCP连接数都呈上升趋势。
刚才访问了一下网站,虽然CPU跑到100%,但网站还是以能正常访问的。
四、数据库篇
还好当时把数据库单独放在RDS中,如果数据库和网站都放在一台服务器上,CPU跑到100%后,我估计业务就直接崩溃了。
在CloudDBA“性能趋势”处,和云监控看到的ECS的资源类似的,TPS/QPS连接数都呈上升趋势。
CloudDBA官方文档:https://help.aliyun.com/document_detail/96125.html
“实时性能”看到QPS、连接数和网络流量都维持在较高的水位线
“会话管理”可以看到当前数据库的进程ID,哪些处于活动、睡眠状态
当有大量sleep或者异常用户、来源访问时可以直接在这里进行展示。
如果发现查询变慢,而ECS的CPU占用率不高时,我们可以在“智能优化”中看下查看RDS系统的负载,发现是哪些SQL导致查询时间过长,哪些SQL执行次数最多(执行次数较多、时间长的可以考虑添加索引),也可以把SQL语句拿到CloudDBA进行试跑,从中发现需要优化的地方。
下载诊断报告:https://help.aliyun.com/document_detail/96129.html
五、压测结束
我们可以看到高资源占用情况马上就好转了。
此时我们肯定想看下压测这么久,结果到底怎么样了,如果项目有测评要求,可以将报告下载下来优化调优,如果只是像我一样做下大概了解,心里有数,则可直接在线查看。
压测报告:https://help.aliyun.com/document_detail/65304.html
我们可以看到用了ECS和RDS做业务分离后,虽然CPU资源占用较高,但请求返回都是200(200为正常,其它为异常)。