<返回更多

Tomcat线程数调优

2019-11-12    
加入收藏

注:内容来源于我本人的微信公众号:码农历险技

有些spring boot项目平时的流量涌入比较大的,或者是当有活动的时候在活动那几天涌入的流量也是很大的,这时候如果不对我们项目的线程数进行相应的调优就会导致我们项目的TPS、QPS上不去,这时候就要把Tomcat的线程数进行相应的调优。

一.服务端如何查看有多少个线程数量

  1. 首先我们输入ps -ef | grep JAVA命令查看所有的java进程。
  2. 从第1步骤找到你想要的进程号,输入命令:pstree -p 进程号,这个命令可以列出该进程的所有线程出来。
  3. 除了2个步骤也可以直接统计出线程的数量,输入命令:pstree -p 进程号 | wc -l,直接算出线程的总数过来。

二.tomcat默认配置

spring boot的关于tomcat的配置在spring-configuration-metadata.json文件中,并且以server.tomcat开头。

Tomcat线程数调优

 

默认内嵌的tomcat配置有:

  1. 等待队列的长度:server.tomcat.accept-count,默认为100
Tomcat线程数调优

 

b. 最大可被连接数:server.tomcat.max-connections,默认为10000

Tomcat线程数调优

 

c. 最大工作线程数:server.tomcat.max-threads,默认为200

Tomcat线程数调优

 

d. 最小工作线程数:server.tomcat.min-spare-threads,默认为10

Tomcat线程数调优

 

根据以上的默认配置,线程连接超过10000以后出现拒绝连接的情况,触发的请求超过200+100后拒绝连接。

三.如何修改tomcat配置

说实话,这种答案是不固定的,不同的服务器对象的最佳线程数是不固定的,要测试人员在Jmeter或Apache ab通过不断的参数设置找到最高的那个拐点,举个例子,我们项目组所用的是4核8G的服务器,对于4核8G的服务器来说最大的拐点在七八百左右,我们项目组设置是780。

以4核8G的服务器为例,我设置等待队列的长度为1000,最大工作线程数为780,最小工作线程数为100。

Tomcat线程数调优

 

四.总结

上面的tomcat线程数调优只是一个例子,数据不能用作参考,实际的工作中还要经过不断的数据测试来寻找到最高的拐点出来。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>