注:内容来源于我本人的微信公众号:码农历险技
有些spring boot项目平时的流量涌入比较大的,或者是当有活动的时候在活动那几天涌入的流量也是很大的,这时候如果不对我们项目的线程数进行相应的调优就会导致我们项目的TPS、QPS上不去,这时候就要把Tomcat的线程数进行相应的调优。
一.服务端如何查看有多少个线程数量
二.tomcat默认配置
spring boot的关于tomcat的配置在spring-configuration-metadata.json文件中,并且以server.tomcat开头。
默认内嵌的tomcat配置有:
b. 最大可被连接数:server.tomcat.max-connections,默认为10000
c. 最大工作线程数:server.tomcat.max-threads,默认为200
d. 最小工作线程数:server.tomcat.min-spare-threads,默认为10
根据以上的默认配置,线程连接超过10000以后出现拒绝连接的情况,触发的请求超过200+100后拒绝连接。
三.如何修改tomcat配置
说实话,这种答案是不固定的,不同的服务器对象的最佳线程数是不固定的,要测试人员在Jmeter或Apache ab通过不断的参数设置找到最高的那个拐点,举个例子,我们项目组所用的是4核8G的服务器,对于4核8G的服务器来说最大的拐点在七八百左右,我们项目组设置是780。
以4核8G的服务器为例,我设置等待队列的长度为1000,最大工作线程数为780,最小工作线程数为100。
四.总结
上面的tomcat线程数调优只是一个例子,数据不能用作参考,实际的工作中还要经过不断的数据测试来寻找到最高的拐点出来。