首页 新闻 搜索 专区 学院

Springboot内置tomcat线程一直sleeping

0
悬赏园豆:100 [待解决问题]

Springboot版本1.5.6
配置了tomcat线程参数

server.tomcat.accept-count=1000
server.tomcat.max-threads=2000
server.tomcat.min-spare-threads=350

启动服务后大部份线程一直sleeping是什么原因,最高运行中为10,jmeter并发线程数300,TPS极低

不设置tomcat线程参数,并发300,TPS9000的样子

问题补充:

附加未配置参数测试截图服务进程最大252线程,计划增大最大线程数看是否能提高TPS

potatoyam的主页 potatoyam | 初学一级 | 园豆:56
提问于:2020-07-24 16:43
< >
分享
所有回答(2)
0

虽然只有10个run,但是你的cpu看起来负载却不低。不配置的时候top啥信息?

blackheart | 园豆:3464 (老鸟四级) | 2020-07-24 17:24

我猜测是因为accept-count有点高,一下子涌过来的请求有点多,同时min-spare-threads也有点高,导致已启动就需要维护至少350个线程,切换线程的压力有点大。也就这俩参数,多调整下试试。。。

支持(0) 反对(0) blackheart | 园豆:3464 (老鸟四级) | 2020-07-24 19:55

第一个jmeter的错误数看起来太高了,应该是accept-count过高导致的。

支持(0) 反对(0) blackheart | 园豆:3464 (老鸟四级) | 2020-07-24 19:57

@blackheart: 这几个参数什么关系没弄明白,不配置性能还正常
最后解决思路是,服务调用链从A服务到B服务,单独测试两个服务的性能,发现B服务性能差
两个点:
1.B服务上用jstack抓了线程信息,由于logback开启了info级别记录日志导致大量业务线程等待
2.redis读取超大值响应速度慢

支持(0) 反对(0) potatoyam | 园豆:56 (初学一级) | 2020-08-04 10:16
0

换了一种解决方案

potatoyam | 园豆:56 (初学一级) | 2020-08-04 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册