应用压测

更新时间:2016/07/13 访问次数:48355

简介

为了给消费者提供最佳的互动体验,建议开发者在上线之前,参考以下标准,做好全部的压测,包括所有接口和页面。建议响应时间在1s之内,如果超过1S,请大家按照监控中的访问请求超时时间最长的接口做优化。

TAE测试中心对服务端程序进行压力测试并输出测试报告,展示应用高负载下的性能状况,为用户提供调优的依据。

TAE测试中心除了提供服务端压力测外,还提供页面性能测试。具有如下特点:

  • 高仿真
    高度模拟实际访问请求对线上环境进行压力测试,支持根据线上历史访问回放测试。
  • 多方位
    提供针对应用多个方面的测试,包括服务端QPS,RT等

服务器性能压测时,需要注意以下几点:

(1)如果你的预计pv在100万左右,压测时输入pv:100万(压测1个url,如果n个url,压测的pv就是n*100万),qps默认不用改,压测完合格结果:qps要达到50及以上,页面的响应时间在1000ms以下,算合格,如果超过1000ms,请到服务监控查看慢请求的接口进行优化,如下图所示:

(2) 压测时间10分钟就可以,压测的页面多余1个的话可以创建2个压测任务,一个压页面一个压接口,如果只有1个页面权重可不设,pv选100万,倍数选3(倍数概念是:pv的突增程度,倍数越大越好),初始线程和 最大线程都选50;如果页面有2个及以上,权重需根据页面的访问量去设置比例,比例加起来等于1即可

 (3)压测完上述都符合要求,请到服务监控中看到机器的cpu、内存、磁盘使用情况,如果使用率超过80%,建议增加机器扩容

如果你是C2B定制,特别需注意带宽,因为在定制流程会有最少2个图片的保存,如1、传到交易快照图片 2、 保存生产图(外包装定制有此需求):建议不要在交易流程保存图片,在下单后定时获取参数生成产品图到到供应链。 在EWS如有以上图片保存的流程,请适当扩容机器带宽。

例如机器带宽是5Mb,5*1024/8=640K,你的图片是80k(两个图片加起来,很多开发者不止80K),相当于你只能并发8个线程带宽就已经占满,请依照此逻辑升级带宽

扩 容:防止大家单台机器出问题,所以需要都是2台机器及以上,在根据机器的规格分成容器,比如你机器规格是4核8G的,你可以把一个机器分成2个2核4G的 容器,容器之间自带负载均衡(有的同学可能4核8G的就一个容器,不建议这么做,这么会造成资源浪费,建议分成2个容器,单个容器的最小规格也要达到1核 2G)

注意:大家上传代码一定要用EWS提供的上传部署功能,不要用ftp,否则在扩容后代码不会自动同步。如果用了EWS,在扩容后EWS会自动帮开发者做代码同步

扩容文档:点击查看

基本概念

测试计划

  • 测试的具体参数及目标。其中包含编辑中,执行中,停止中,停止四个状态;
  • 测试计划在启动了一次测试任务后禁止对其参数值进行修改。

测试任务

  • 启动测试计划创建一个任务,一个测试计划可以启动多次。

测试详情

  • 在执行中的计划任务中可以实时查看测试详情。

测试报告

  • 对应计划的最终测试结果,一个计划可有多个测试报告。

服务端压力测试

建议购买机器最少2台及以上,主要测试session是否同步(EWS没有提供session同步功能)

对应用服务端程序进行压力测试,记录测试指标:包括QPS(每秒查询率)、响应时间、网络流量、数据库QPS/TPS(服务器每秒处理的事务数)、数据库连接数、SQL执行次数等,生成测试报告。

操作流程

第一步:登录聚石塔控制台->运维管理->应用压测->后端性能->点击“创建测试“按钮:

说明:

1. 系统会按照创建日期自动生成默认计划名称,建议修改称自己的计划名称。

2. 选择应用以及压测中使用的需要观察的数据库实例,如果没有需要监测的rds实例可以选择“无”

3. 填写压测的时间长度

4. 如果服务中使用了TOP服务,请勾选“请求中是否使用top服务”一栏

第二步:填写测试设置,需要测试的url地址:
目前测试请求支持GET以及POST两种https请求, 最多支持10个URL
一、参数方式包含无参数,文本输入,上传参数和手动填写四种方式,具体解释如下:

1. 无参数:不需要填写

2. 文本输入:格式如a=1&b=2&c=3

3. 上传参数:对于一个url可能对应的多个不同的参数的形式,适合采用上传参数文件的方式,文件格式采用utf8编码的csv文件。例如上传的参数key是a,b,c,有10组不同的值csv的文件内容形如如下:
a,b,c
1,2,3
4,5,6
7,8,9
1,2,2
3,2,3
6,6,7
7,7,8
8,8,8
7,8,8
8,8,8
上传参数大小不能大于1M

4. 手动填写:填写的内容采用多表单形式发送到服务端

二、 头信息如果选择无参数,压测过程中会使用默认值,也可以选择手动填写,指定某个头信息的值。

三.、URL地址的填写可以支持占位匹配。例如,应用的请求满足如下匹配: 
https://xxxx.jaeapp.com/${key}/api/xxxx 
其中的key是不固定的值,其它的值是一样的,那么url填写的时候url输入框可以填写”https://xxxx.jaeapp.com/${key}/api/xxxx”,然后按照前面所述上传csv文件,其中文件内容包含一列key值,key就是url中占位符的名字,值就是需要替换的内容。实际压测中key会被替换成csv文件中key列的内容

测试参数中支持QPS(每秒查询率),RT(请求响应时间)以及PV(页面浏览量)转化为QPS三种设置方式,压测过程中当达到设置目标值时,会停止加压,维持在一个平稳压力状态

说明:

1. 测试地址权重为必填项。表示的是所有的测试地址发送请求数的比例。比如有三个测试地址,分别填入权重1、3、6表示压力请求数占比。如果只有一个测试地址,填写任何整数意义都一样。

2. 初试最大线程数是可以根据压测的预估qps计算出来的,预估的qps乘以单个请求处理时间(单位需要是秒)就是最大线程数

3. 如果用户发送的请求需要保持登录态,可以自定义填写Cookie头域携带,就可以填写相关头信息字段

配置完成点击保存或者保存去执行按钮。
点击执行->查看详情或者直接点击“保存去执行”后跳转页面右上角“启动测试”按钮,查看实时压测详情:

压测在设置时间到达后,自动停止并且保存压测结果。在压测过程中可以点击右上角“停止测试”按钮随时停止压测。并且可以选择是否保存压测结果。压测结果在压测报告中进行查看。也可以删除某个压测报告

FAQ

关于此文档暂时还没有FAQ
返回
顶部