性能测试瓶颈分析

      在实际测试中,由于各种原因,测试得到的性能指标关系往往并不遵循前面介绍的关系。常见的现象有CPU压不满或者在CPU压满前,相关性能指标曲线已不正常。虽然导致这种现象的原因很多,但有一点可以肯定的是,系统(硬件或软件系统)的某处一定出现了瓶颈。此时,测试人员应配合开发人员进行分析尽快找出瓶颈的所在。

1、查看cpu是否时瓶颈
首先查看CPU%是否已接近100%,若已经接近(>95%),再看其他指标的拐点出现的时刻是否与CPU压满的时刻基本一致,若一致,则说明测试不存在瓶颈。若CPU未能压满,在继续查找其他瓶颈。
查看CPU利用率。建议CPU指标如下:
  a) User Time:65%~70%
  b) System Time:30%~35%
  c) Idle:0%~5%
  如果us,sy高于这个指标可以判断CPU有瓶颈
2、查看内存是否瓶颈
内存不足时,操作系统会使用虚拟内存,平凡进行页交换,这回造成ART(activity respond time)的上升。
3、查看磁盘I/O是否瓶颈
磁盘I/O成为瓶颈时,会出现磁盘I/O繁忙,导致交易执行时在I/O处等待。

如图,当磁盘的Busy%>20%时,说明磁盘的I/O已比较繁忙。

4、查看中间是否瓶颈
空闲线程的影响
日志级别的影响
JVM的影响
JDBC连接池大小的影响
查看网络带宽是否瓶颈
性能测试大豆在100M的局域网内进行,一般带宽不会成为瓶颈,但若是带宽<10M或是做一些大文件下载上传的测试时,网络带宽就有可能成为瓶颈。

5、查看数据库是否瓶颈
联机事务处理系统需要频繁操作数据库,因此,数据库的设计、部署方式等会对系统的性能有较大影响。
造成数据库瓶颈的因素比较多,常见的有:
数据库操作频繁,占用CPU较大
数据库表未建索引,导致操作数据库时间过长
数据库操作的常用表在一个表空间内,且在一个磁盘桑,导致磁盘读写频繁
数据库的连接池设置太小,导致数据库连接出现排队

6、分析程序内部实现机制是否瓶颈
程序内部的一些实现机制也可能会成为瓶颈,比如同步、异步方式,监控机制等。

猜你喜欢

转载自www.cnblogs.com/jane4321/p/11026916.html