Tomcat线程数调优

  有些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配置有:

  1. 等待队列的长度:server.tomcat.accept-count,默认为100

    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线程数调优只是一个例子,数据不能用作参考,实际的工作中还要经过不断的数据测试来寻找到最高的拐点出来。


版权声明:本文为longxudong223原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。