zoukankan      html  css  js  c++  java
  • jmeter对tomcat性能测试

    主要对tomcat的参数做一些记录(jmeter和tomcat在同一个计算机,可能引起测试误差)

    我的计算机配置  4核8线程  8G内存

    案例一

    tomcat  JVM  1.8G堆内存,无数据库操作

    #最大线程数
    server.tomcat.maxThreads =10000
    #这个参数是指在同一时间,tomcat能够接受的最大连接数,一般这个值要大于maxThreads+acceptCount
    server.tomcat.maxConnections =20000
    #当线程数量达到最大线程数时所允许的最大等待队列的长度
    server.tomcat.acceptCount =200
    #最小空闲线程数
    server.tomcat.minSpareThreads =10



      并发数 平均响应时间 响应时间中位数 90%用户的响应时间 95%用户的响应时间 99%用户的响应时间 最小响应时间 最大响应时间 错误率 吞吐量(s) 每秒发送的数据(KB) 每秒接受的数据(KB)
    HTTP Request 1000 354 337 850 862 873 1 879 0.0% 887.3 103.9 274.6
    HTTP Request 5000 1000 1047 1725 2009 2422 94 2721 0.0% 802.9 94.0 248.5
    HTTP Request 10000 1692 1389 3265 3582 3918 137 6016 0.0% 699.8 78.5 207.3
    HTTP Request 15000 1166 945 2565 2877 3958 5 5347 47.3% 496.7 611.7 80.9
    HTTP Request 20000 1477 1355 2883 3244 4273 5 5298 17.7% 680.2 363.8 172.2

    分析:在tomcat允许最大10000线程的情况下,并发数越大,响应时间越长,吞吐量越小。在某时刻会发生连接错误。

    案例二

    tomcat  JVM  1.8G堆内存,无数据库操作

    #最大线程数
    server.tomcat.maxThreads =800
    #这个参数是指在同一时间,tomcat能够接受的最大连接数,一般这个值要大于maxThreads+acceptCount
    server.tomcat.maxConnections =20000
    #当线程数量达到最大线程数时所允许的最大等待队列的长度
    server.tomcat.acceptCount =200
    #最小空闲线程数
    server.tomcat.minSpareThreads =10
      并发数 平均响应时间 响应时间中位数 90%用户的响应时间 95%用户的响应时间 99%用户的响应时间 最小响应时间 最大响应时间 错误率 吞吐量(s) 每秒发送的数据(KB) 每秒接受的数据(KB)
    HTTP Request 1000 1806 2019 2356 2410 2497 975 2582 0.0% 385.8 45.2 119.4
    HTTP Request 5000 2353 2210 3582 4159 4341 618 4538 49.74% 874.3 1255.4 136.0

    分析:在tomcat允许最大800线程的情况下,并发数不能超过800太多(1000可以),不然会有很多的请求会因为tomcat的接受请求线程全被占用而被tomcat服务器拒绝接受。Address already in use: connect

    案例三

    tomcat  JVM  1.8G堆内存,无数据库操作

    #最大线程数
    server.tomcat.maxThreads =20000
    #这个参数是指在同一时间,tomcat能够接受的最大连接数,一般这个值要大于maxThreads+acceptCount
    server.tomcat.maxConnections =30000
    #当线程数量达到最大线程数时所允许的最大等待队列的长度
    server.tomcat.acceptCount =200
    #最小空闲线程数
    server.tomcat.minSpareThreads =10
      并发数 平均响应时间 响应时间中位数 90%用户的响应时间 95%用户的响应时间 99%用户的响应时间 最小响应时间 最大响应时间 错误率 吞吐量(s) 每秒发送的数据(KB) 每秒接受的数据(KB)
    HTTP Request 20000 1638 1330 3210 3872 4382 4 4619 13.26% 717.6 311.8 192.6
    HTTP Request 15000 1597 1406 315 3276 4116 3 4994 1.22% 767.2 114.7 234.6
    HTTP Request 8000 1726 1729 2905 2993 4099 82 4768 0.0% 797.7 94.8 246.8
    HTTP Request 5000 2171 2073 3423 3844 4498 334 4892 0.0% 753.1 100.6 231.7
    HTTP Request 3000 2075 2214 3265 3391 3656 1 3736 0.0% 712.8 83.53 220.6
    HTTP Request 1000 461 565 843 874 992 2 998 0.0% 796.2 93.3 246.4

    分析:和案例一相比类似,最大线程数不是越大越好,线程数的增多或导致过多的线程上下文切换,耗费时间。导致单个响应时间的上升。

    总结:maxThreads并没有一个最优的值,需要根据系统的配置和项目内容来不断地测试,调整和优化。最终得到合理的配置。在tomcat的配置相同的情况并且相同的并发下,响应时间,错误率,吞吐量也存在较大差异,主要是因为系统的真实环境不同,可能系统本来就有较多线程在运行。

     

     

    5000并发

  • 相关阅读:
    前端开发框架
    用C#实现的条形码和二维码编码解码器
    Razor视图语法
    asp.net微软图表控件MsChart
    高并发下的Node.js与负载均衡
    GCC知识
    Mongodb学习(安装篇): 在centos下的安装
    代码评审
    构建一个前端库做一个富客户端的基类
    企业级应用架构(NHibernater+Spring.Net+MVC3+WCF)_3.0
  • 原文地址:https://www.cnblogs.com/ll9507/p/11374487.html
Copyright © 2011-2022 走看看