在springboot-configuration-metadata.json文件下面,有很多属于springboot得喷子hi属性,以下为tomcat的默认配置属性:
- server.tomcat.accept-count:等待队列长度,默认100(队列也做缓冲池用,但也不能无限长, 不但消耗内存,而且出队入队也消耗CPU)
- server.tomcat.max-connections:最大可被连接数,默认10000
- server.tomcat.max-threads:最大工作线程数,默认200,线程数不是越多越好,要考虑操作系统上下文切换的开销
- server.tomcat.min-spare-threads:最小工作线程数,默认10(用来解决突发的容量问题,需要有一些在工作的线程),操作系统可以有充足的时间反应,先用这10个,不够的再开启就可以
注意:
- 默认配置下,连接超过10000后出现拒绝连接情况
- 默认配置下,触发的请求超过200+100后拒绝处理
一条来自网上大佬的经验:4核8G内存单进程调度线程800-1000以上之后会花费巨大的时间在CPU调度上
上面这些配置需要结合服务器配置,包括业务需求合理进行一些配置,我直接再springboot中的yml文件中进行了如下配置: