zoukankan      html  css  js  c++  java
  • 性能测试瓶颈分析

          在实际测试中,由于各种原因,测试得到的性能指标关系往往并不遵循前面介绍的关系。常见的现象有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、分析程序内部实现机制是否瓶颈
    程序内部的一些实现机制也可能会成为瓶颈,比如同步、异步方式,监控机制等。

  • 相关阅读:
    【angularJS】启动(bootstrap)机制
    【angularJS】定义模块angular.module
    【angularJS】简介
    .NET AutoMapper学习记录
    WebAPI学习
    【MongoDB】在C#中使用
    RabbitMQ介绍及windows下安装使用
    【MongoDB】初识
    php命名空间(nameSpace)的使用详解
    魔术方法
  • 原文地址:https://www.cnblogs.com/jane4321/p/11026916.html
Copyright © 2011-2022 走看看