当前位置:   article > 正文

SprongBoot内置tomcat配置调优_springboot集成的tomcat配置优化

springboot集成的tomcat配置优化

 

基于Maven新建一个SpringBoot项目并提供一个查询接口,每调用一次这个接口都会调用一次Mysql进行查询

部署在腾讯云服务器(配置1核 2G 5M带宽)

Jmeter 1000并发循环30次测试 吞吐量 612左右

通过命令查看tomcat在没有丝毫压力的情况下内部自动维护了28个线程池的线程数量

此时对这个项目进行jmeter压测,发现tomcat在压测的情况下线程数量升到了218,并且压测完毕后线程数量回到了28

并发上不去,其实最大的原因就是server上面的配置有问题,导致并发数据上不去,直接服务被拒绝连接,server端的并发线程数上不去,导致tps容量上不去,导致客户端被拒绝连接之后,发生了各种各样的一些问题。

怎么配置tomcat,才能使得自己的服务效率更高呢?

这个和tomcat的使用的IO模式有关,也和tomcat的配置参数有关。

尤其是tomcat的这三个配置项:maxConnections、maxThreadsacceptCount

 

  • maxConnections:最大连接数
这个参数是指在同一时间,tomcat能够接受的最大连接数。对于Java的阻塞式BIO,默认值是maxthreads的值;如果在BIO模式使用定制的Executor执行器,默认值将是执行器中maxthreads的值。对于Java 新的NIO模式,maxConnections 默认值是10000。对于windowsAPR/native IO模式,maxConnections默认值为8192,这是出于性能原因,如果配置的值不是1024的倍数,maxConnections 的实际值将减少到1024的最大倍数。如果设置为-1,则禁用maxconnections功能,表示不限制tomcat容器的连接数。maxConnections和accept-count的关系为:当连接数达到最大值maxConnections后,系统会继续接收连接,但不会超过acceptCount的值。
  • maxThreads:最大工作线程数
每一次HTTP请求到达Web服务,tomcat都会创建一个线程来处理该请求,那么最大线程数决定了Web服务容器可以同时处理多少个请求。maxThreads默认200,肯定建议增加。但是,增加线程是有成本的,更多的线程,不仅仅会带来更多的线程上下文切换成本,而且意味着带来更多的内存消耗。JVM中默认情况下在创建新线程时会分配大小为1M的线程栈,所以,更多的线程异味着需要更多的内存。线程数的经验值为:12g内存为200,线程数经验值20048g内存,线程数经验值800
  • accept-count:等待队列长度
当所有的请求处理线程都在使用时,所能接收的连接请求的队列的最大长度。当队列已满时,任何的连接请求都将被拒绝。accept-count的默认值为100。详细的来说:当调用HTTP请求数达到tomcat的最大线程数时,还有新的HTTP请求到来,这时tomcat会将该请求放在等待队列中,这个acceptCount就是指能够接受的最大等待数,默认100。如果等待队列也被放满了,这个时候再来新的请求就会被tomcat拒绝(connection refused)。

优化tomcat配置

  1. server:
  2. port: 8082
  3. tomcat:
  4. #最大工作线程数默认200 线程数的经验值为:12g内存为200,线程数经验值20048g内存,线程数经验值800
  5. #操作系统做线程之间的切换调度是有系统开销的,所以不是越多越好。
  6. max-threads: 200
  7. # 等待队列长度,默认100(当等待队列长度超过配置的数值时就拒绝访问)
  8. accept-count: 1000
  9. # 最小工作空闲线程数,默认10, 适当增大一些,以便应对突然增长的访问量
  10. min-spare-threads: 100
再次上传至腾讯云服务器压测Jmeter 1000并发循环30次测试 吞吐量 672左右

修改配置后tomcat在无压力的情况下自动维护118个线程,在压测的过程中维护218个线程 

Jmeter 10000并发循环30次测试,超出的连接直接被拒绝 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/52543
推荐阅读
相关标签
  

闽ICP备14008679号