性能测试分析思路(未完待续)

来源:互联网 发布:淘宝商城手镯 编辑:程序博客网 时间:2024/03/29 19:52

一.性能测试步骤


二.性能测试通过标准

吞吐量:

响应时间:90%小于200ms

失败率:<0.01%

cpu使用率:<80%



三.性能测试指标和监控

业务性能指标

吞吐量,响应时间,失败率

1.吞吐量

      以jmeter工具为例,每次执行完性能测试之后可以通过聚合报告里面看到吞吐量,

                                                                                                                                      图1

        在这份报告里面throughput也就是吞吐量(tps),一般情况下我们不可能执行一次就能够得到最大吞吐量,我们一般采用二分增加,如对线程数20、40、80、160,当发现增大后降低,再对该区间二分尝试,最后对拐点附近精细尝试得到最大吞吐量;那么我们如何得到理想的tps呢?当我们得到了最大的tps,那么这种情况下是否就可以任务性能满足了呢?

        这里有两种方法可供参考:

       1.1.这里面涉及到用户访问量(pv)和tps的一个对应关系,一般我们会从运维那里得到整个系统在一天pv的一个趋势图,按小时进行统计可以看到24个小时里面pv的趋势,我们取其中最大的值换算成每秒最大pv,看tps是否大于日最高pv数;

        1.2.二八原则:指80%的业务量在20%的时间里完成

          如何理解,下面我们来个例子吧

用户登录场景:早高峰时段,8:50---9:10,5000坐席上线登陆。

      业务量:5000个 

      时间:20x60=1200秒

    吞吐量=80%x业务量/(20%*时间)=4000/240=16.7/秒

而并非5000/1200=4.1/秒

实际上,登录请求数分布是一个正态分布,最高峰时肯定比4.1/秒更高,高峰段实际上完成了80%的业务量,却只花了20%的时间,二八原则计算的结果并非在线并发用户数,是系统要达到的处理能力(吞吐量),初学者容易被误导,那这这个数据就去设置并发数,这是错误滴。

基于以上,如果我们通过计算得到了系统最大的吞吐量,当我们通过压测,得到的吞吐量大于计算出来的吞吐量,那么系统系统就是安全的;

      另外一点,由于在这里可以看到tps的值,但是看不到tps的变化趋势,不过jmeter里面提供了这项功能,右键线程组-添加-监听器-图形结果,这里可以查看tps的趋势;


   

2.响应时间

在图1的第3-7列依次表示的是平均响应时间、50%用户响应时间、90%用户响应时间,最小最大响应时间;

一般我们在测试的过程中



3.失败率

资源性能指标

1.如何分析cpu

通过top命令:

显示出来的指标有很多,主要关注的指标有load average(参考:cpu中的load average),%us,%sy

       load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。评估系统性能时,不仅仅看load average的数值,而且应该结合系统的CPU核数(top命令下按1可以显示出有几个cpu核),系统的负载均值是基于内核的数量决定的,例如该服务器有24核,则单核的CPU负载为7/24。
依据经验分析,单核CPU负载<2时,系统性能是良好的,当单核CPU负载>5时,那么就表明这个机器存在严重的性能问题。

      如果CPU在满负荷运行,应该符合下列分布,
      a) User Time:65%~70%
      b) System Time:30%~35%

2.如何分析内存


3.如何分析网络


4.如何分析IO


5.数据库负载


三.性能测试分析


四.

参考文章:

http://blog.csdn.net/musen518/article/details/50441473

0 1