使用PTS对网站进行压测

最近在阿里云搭了一个博客,用阿里云提供的PTS对网站做了一下压测,现在把压测的步骤分享出来,有类似做网站或外贸电商的也可以参考下(产品部署步骤省略,只有压测和性能分析)。
所用云产品如下(长期使用选择包年可享受一定官网优惠):

云产品(华北5) 规格
RDS(MySQL5.6高可用) 1C2G
SSL 免费证书
CDN 按量
OSS 按量
云监控 免费版
PTS 新用户体验版

一、确定要测试的页面和访问流程

本次要测试的是网站首页和打开第一条产品页的访问速度,如下所示首页:
使用PTS对网站进行压测

详情页:
使用PTS对网站进行压测

二、进入PTS管理控制台

1、添加场景

使用PTS对网站进行压测

2、添加被测URL

我们是模拟用户访问首页后,再进入到详情页,所以要添加两个URL(如果有多个页面,可以按访问页面先后顺序进行添加)
使用PTS对网站进行压测

3、选择施压配置

选择施压配置,本次选择的是“并发模式”

  • 并发模式:是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。
  • RPS模式:(Requests Per Second)是指每秒请求数。从服务端的角度出发,直接衡量系统的吞吐能力,免去并发到 RPS 的繁琐转化,一步到位。

具体区别可参考官方文档:https://help.aliyun.com/document_detail/70480.html
在这里,我们设置最大并发为100,递增百分比为默认,持续时长为5分钟,考虑到首页访问人数可能会多于详情页,故设置“最大并发权重”为50和30,保存配置。
使用PTS对网站进行压测

4、调试场景、保存去压测

使用PTS对网站进行压测

可根据业务访问情况,在晚上或业务低峰时进行压测。

5、生成测试任务

使用PTS对网站进行压测

6、开始压测,压测完成会生成压测报告。

使用PTS对网站进行压测

三、云监控篇

压测开始后,到云监控看资源的使用状态,我主要关心的是CPU、内存和网络.
在主机监控中找到我们压测的ECS
使用PTS对网站进行压测

压测开始后,我们可以看到CPU和系统平均负责都呈上升趋势。
使用PTS对网站进行压测

在同一个页面继续往下拉,我们可以看到网络和TCP连接数都呈上升趋势。
使用PTS对网站进行压测

刚才访问了一下网站,虽然CPU跑到100%,但网站还是以能正常访问的。

四、数据库篇

还好当时把数据库单独放在RDS中,如果数据库和网站都放在一台服务器上,CPU跑到100%后,我估计业务就直接崩溃了。
在CloudDBA“性能趋势”处,和云监控看到的ECS的资源类似的,TPS/QPS连接数都呈上升趋势。
CloudDBA官方文档:https://help.aliyun.com/document_detail/96125.html
使用PTS对网站进行压测

“实时性能”看到QPS、连接数和网络流量都维持在较高的水位线
使用PTS对网站进行压测

“会话管理”可以看到当前数据库的进程ID,哪些处于活动、睡眠状态
当有大量sleep或者异常用户、来源访问时可以直接在这里进行展示。
使用PTS对网站进行压测
使用PTS对网站进行压测

如果发现查询变慢,而ECS的CPU占用率不高时,我们可以在“智能优化”中看下查看RDS系统的负载,发现是哪些SQL导致查询时间过长,哪些SQL执行次数最多(执行次数较多、时间长的可以考虑添加索引),也可以把SQL语句拿到CloudDBA进行试跑,从中发现需要优化的地方。
下载诊断报告:https://help.aliyun.com/document_detail/96129.html

五、压测结束

我们可以看到高资源占用情况马上就好转了。
使用PTS对网站进行压测

此时我们肯定想看下压测这么久,结果到底怎么样了,如果项目有测评要求,可以将报告下载下来优化调优,如果只是像我一样做下大概了解,心里有数,则可直接在线查看。
压测报告:https://help.aliyun.com/document_detail/65304.html
使用PTS对网站进行压测
使用PTS对网站进行压测

我们可以看到用了ECS和RDS做业务分离后,虽然CPU资源占用较高,但请求返回都是200(200为正常,其它为异常)。

上一篇:重磅发布 | 《不一样的 双11 技术,阿里巴巴经济体云原生实践》电子书开放下载


下一篇:【免费领取】阿里技术资料解密,100 本电子书找全了