SpringBoot内置tomcat调优测试优化

网友投稿 1591 2023-01-24

SpringBoot内置tomcat调优测试优化

SpringBoot内置tomcat调优测试优化

问题

怎么配置springBoot 内置tomcat,才能使得自己的服务效率更高呢?

基础配置

Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改。我们可以看到默认设置中,Tomcat的最大线程数是200,最大连接数是10000。 这个不同SpringBoot 版本可能有所细微差别。本文测试基于Springboot 2.0.7.RELEASE

默认配置

/**

* Maximum amount of worker threads.

*/

private int maxThreads = 200;

/**

* Minimum amount of worker threads.

*/

private int minSpareThreads = 10;

/**

* Maximum size in bytes of the HTTP post content.

*/

private int maxHttpPostSize = 2097152;

/**

* Maximum size in bytes of the HTTP message header.

*/

private int maxHttpHeaderSize = 0;

/**

* Whether requests to the context root should be redirected by appending a / to

* the path.

*/

private Boolean redirectContextRoot = true;

/**

* Whether HTTP 1.1 and later location headers generated by a call to sendRedirect

* will use relative or absolute redirects.

*/

private Boolean useRelativeRedirects;

/**

* Character encoding to use to decode the URI.

*/

private Charset uriEncoding = StandardCharsets.UTF_8;

/**

* Maximum number of connections that the server accepts and processes at any

* given time. Once the limit has been reached, the operating system may still

* accept connections based on the "acceptCount" property.

*/

private int maxConnections = 10000;

/**

* Maximum queue length for incoming connection requests when all possible request

* processing threads are in use.

*/

private int acceptCount = 100;

测试步骤

通过我们查看源码得知了(org.springframework.boot.autoconfigure.web.ServerProperties)springBoot 内置tomcat 默认配置,现在我们为了在本地体现出效果,我们将配置参数有意调小配置如下进行压测,同时将压测接口中设置sleep(2000) 模拟线程没有释放。

tomcat:

http:// #最小线程数

min-spare-threads: 5

#最大线程数

max-threads: 5

#最大链接

max-connections: 5

#最大等待队列长度

accept-count: 1

该配置对应压测

通过压测100并发 发现异常达到了85% 由于我们配置ReadTimeout 和ConnectTimeout bJJZhXy配置2秒 100个线程同时达到,处理最大线程才1,排队也是1 导致一个是没有线程处理请求导致超时一个是排不上队别拒绝。当我按照本机cup 合理配置后看看压测情况。优化配置如下:

tomcat:

#最小线程数

min-spare-threads: 100

#最大线程数

max-threads: 600

#最大链接数

max-connections: 10000

#最大等待队列长度

accept-count: 1000

如上图 同样是100并发 异常率为0 全部通过,响应时间也是减除slehttp://ep(2000) 大多数都是10毫秒内。优化效果可见显著。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:移动端跨端开发领域(移动端跨端开发领域包括)
下一篇:混合app开发有哪些(混合式app开发框架)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~