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
虽然只有10个run,但是你的cpu看起来负载却不低。不配置的时候top啥信息?
我猜测是因为accept-count有点高,一下子涌过来的请求有点多,同时min-spare-threads也有点高,导致已启动就需要维护至少350个线程,切换线程的压力有点大。也就这俩参数,多调整下试试。。。
第一个jmeter的错误数看起来太高了,应该是accept-count过高导致的。
@blackheart: 这几个参数什么关系没弄明白,不配置性能还正常
最后解决思路是,服务调用链从A服务到B服务,单独测试两个服务的性能,发现B服务性能差
两个点:
1.B服务上用jstack抓了线程信息,由于logback开启了info级别记录日志导致大量业务线程等待
2.redis读取超大值响应速度慢
换了一种解决方案