【性能测试】-常见性能测试问题分析(一)

一、常见性能测试问题及其可能诱因

1)执行过程中,响应时间出现拐点,波动大。

  1-JVM执行了GC垃圾回收,造成性能拐点

  2-网络不稳定

2)高并发时,等待超时、连接失败等报错。

 1-连接数设置不足

 2-服务器资源已达到瓶颈

3)内存溢出问题。

 1-JVM内存参数设置过低

 2-程序本身存在内存溢出或内存回收问题


二、性能影响因素

  应用服务器

  数据库服务器

  应用程序代码本身

  服务器硬件及操作系统


三、常见性能影响因数

1)JVM内存设置参数

 1-Tomcat的bin目录下的catalina.bat文件:

     set JAVA_OPTS=
     -Xms6144m                                    Heap Space
     -Xmx6144m 

     -XX:PermSize=512M                     PermGen Space
     -XX:MaxPermSize=1024M     

 2-内存溢出类型  :OutOfMemoryError:java heap size   /    OutOfMemoryError: PermGen space            

题外话:JVM内存分类

新生区:一个Eden Space和两个Survivor Space
养老区:主要是用来存储那些长时间被引用的对象。
永久存储区(Permanent Space ):用来存储一些信息不经常变更的文件,如class对象等

【性能测试】-常见性能测试问题分析(一)_第1张图片

2)连接数、线程数

  MaxThreads:最大并发线程数,即同时处理的任务个数

 【案例分析】 50个严格并发用户(设置集合点)

    MaxThreads=3,事务响应时间:2.6S;

    MaxThreads=50,事务响应时间:0.6S;

在高强度的并发下,如果MaxThreads设置较小,会影响性能,一般需要设置大于最大同时并发请求数。

但是如果设置过高也会影响性能,占用过多的系统资源。

acceptCount:最大排队数,是指当启动的线程数已经达到最大时,接受排队的请求个数

 

条件

结果

情况1

请求数 < MaxThreads

启动一个线程来处理此请求

情况2

MaxThreads < 请求数 < MaxThreads+AcceptCount

把此请求放入等待队列, 等待空闲线程。

情况3

MaxThreads+AcceptCount < 请求数 

直接拒绝此次请求, 返回connection refused


3)网络

   不同网络环境下的结果对比



你可能感兴趣的:(【性能测试】-常见性能测试问题分析(一))