性能测试之瓶颈分析

来源:互联网 发布:川菜经典名菜知乎 编辑:程序博客网 时间:2024/04/27 15:47

http://blog.csdn.net/zhouyou1986/article/details/37346543

性能测试之瓶颈分析

分类: 软件测试 职业思考 性能测试与稳定性测试 486人阅读 评论(1)收藏 举报
软件测试性能测试

7)性能测试瓶颈分析

 

性能瓶颈分析构成图:


---------------------------------分割线---------------------------------

下面摘取两篇性能瓶颈分析博文(附连接)

在性能测试中,总会用到“性能瓶颈”这个词,也就把它当成基本的一个词汇了,从没想过它到底是个什么东西。今天忽然有人问道什么是“性能瓶颈”,虽然勉强能列举一些例子来说明它,但总不是太令人满意,所以就总结一下。

    首先得说明“瓶颈”的意思。瓶颈,通俗地说,就是一个瓶子的脖子,就是整个系统最薄弱的环节。好比一个桶,能装多少水取决于最短的那块木板,其它的木板再长也没用,那么我们就可以认为这块短的木板就是这个桶的瓶颈了。

    所以性能瓶颈,就是说指限制系统性能的关键因素。

    一般包括:

(1)硬件上的性能瓶颈

      主要指的是CPU、RAM方面的问题。例如,在进行软件需求分析、概要设计时,确定了在数据库服务器上需要6个CPU、12G内存但是在测试时,发现CPU的持续利用率超过95%,这时可以认为在硬件上出现了性能瓶颈。

(2)应用软件上的性能瓶颈

      一般指的是应用服务器、WEB服务器等应用软件,还包括数据库系统。例如,在WEBLogic平台上配置了JDBC连接池的参数,最大连接数为50,最小连接数为5,增加量为10。在测试时发现,当负载增加时,现有的连接数不足,系统会动态生成10个新的连接数,这样导致了交易处理的响应时间大大的增加。

      这时可以认为在应用软件上出现了性能瓶颈。

(3)应用程序上的性能瓶颈

      一般指的是开发人员新开发出来的应用程序。例如,用Java或者C开发出来的部署在应用服务器上用于用户交易请求处理的应用程序。例如,某个开发员开发了一个缴费处理程序,在测试时发现,这个缴费处理程序在处理用户发过来的并发缴费请求时,只能串行处理,无法并行处理,导致缴费交易的处理响应时间非常长,这时可以认为在应用程序上出现了性能瓶颈。

 

(4)操作系统上的性能瓶颈    

       一般指的是Windows、Unix、 Linux 这些操作系统。例如,在windows系统中,虚拟内存设置的不合理,都指定为C驱提供虚拟内存,在测试时发现当出现物理内存不足时,虚拟内存的交换效果非常不理想,导致交易的响应时间大大增加。这时可以认为在操作系统上出现了性能瓶颈。

(5)网络设备上的性能瓶颈

       一般指的是防火墙、动态负载均衡器、交换机等设备。例如,在动态负载均衡器上设置了动态分发负载的机制,当发现某个应用服务器上的硬件资源已经到达极限时,动态负载均衡器将后续的交易请求发送到其它负载较轻的应用服务器上。在测试时发现,动态负载均衡机制没有起到相应的作用,这时可以认为在网络设备上出现了性能瓶颈。

本文出处

http://blog.sina.com.cn/s/blog_4ab06e970100937i.html



第二篇:

 (2)

1、网络瓶颈,如带宽,流量等形成的网络环境

2、应用服务瓶颈,如中间件的基本配置,CACHE等

3、系统瓶颈,这个比较常用:应用服务器,数据库服务器以及客户机的CPU,内存,硬盘等配置

4、数据库瓶颈,以ORACLE为例,SYS中默认的一些参数设置

5、应用程序本身瓶颈,这个是测试过程中最需要去关注的,需要测试人员和开发人员配合执行,然后定位

逐步细化分析,先可以监控一些常见衡量CPU,内存,磁盘的性能指标,进行综合分析,然后根据所测系统具体情况,进行初步问题定位,然后确定更详细的监控指标来分析。

 

       碰到过的性能问题:

  1. 在高并发的情况下,产生的处理失败(比如:数据库连接池过低,服务器连接数超过上限,数据库锁控制考虑不足等)

  2. 内存泄露(比如:在长时间运行下,内存没有正常释放,发生宕机等)

  3. CPU使用偏离(比如:高并发导致CPU使用率过高)

  4. 日志打印过多,服务器无硬盘空间

  如何定位这些性能问题:

  1. 查看系统日志,日志是定位问题的不二法宝,如果日志记录的全面,很容易通过日志发现问题。比如,系统宕机时,系统日志打印了某方法执行时抛出out of memory的错误,我们就可以顺藤摸瓜,很快定位到导致内存溢出的问题在哪里。

  2. 利用性能监控工具,比如:JAVA开发B/S结构的项目,可以通过JDK自带的Jconsole,或者JProfiler,来监控服务器性能,Jconsole可以远程监控服务器的CPU,内存,线程等状态,并绘制变化曲线图。

  利用Spotlight可以监控数据库使用情况。

  我们需要关注的性能点有:CPU负载,内存使用率,网络I/O等

  3. 工具和日志只是手段,除此之外,还需要设计合理的性能测试场景

  具体场景有:性能测试,负载测试,压力测试,稳定性测试,浪涌测试等

  好的测试场景,能更加快速的发现瓶颈,定位瓶颈

  4. 了解系统参数配置,可以进行后期的性能调优

       最后要说的是:做性能测试的时候,我们一定要确保瓶颈不要发生在我们自己的测试脚本和测试工具上。



0 0
原创粉丝点击