SpringBoot内置tomcat调优测试优化

作者:蜗牛乌龟一起走 时间:2023-04-09 03:01:59 

问题

怎么配置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:
    #最小线程数
   min-spare-threads: 5
   #最大线程数
   max-threads: 5
   #最大链接数
   max-connections: 5
   #最大等待队列长度
   accept-count: 1

该配置对应压测

SpringBoot内置tomcat调优测试优化

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


 tomcat:
     #最小线程数
   min-spare-threads: 100
   #最大线程数
   max-threads: 600
   #最大链接数
   max-connections: 10000
   #最大等待队列长度
   accept-count: 1000

SpringBoot内置tomcat调优测试优化

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

来源:https://blog.csdn.net/qq_29897369/article/details/112434900

标签:SpringBoot,内置,tomcat,调优
0
投稿

猜你喜欢

  • Java生成压缩文件的实例代码

    2023-02-04 21:11:09
  • Android多渠道打包神器ProductFlavor详解

    2021-06-11 19:48:22
  • 基于JavaMail的Java邮件发送

    2022-10-30 18:56:56
  • 引入mybatis-plus报 Invalid bound statement错误问题的解决方法

    2021-06-01 14:28:00
  • java之使用多线程代替for循环(解决主线程提前结束问题)

    2021-11-21 01:23:55
  • Java验证码功能的实现方法

    2023-07-05 21:28:21
  • java 注解默认值操作

    2023-08-25 20:31:38
  • java实现多人聊天室可视化

    2021-08-27 01:16:49
  • Windows实现Flutter环境搭建及配置这一篇就够了

    2023-07-03 22:49:30
  • Android开发中的文件操作工具类FileUtil完整实例

    2021-07-04 23:24:41
  • RocketMQ4.5.X 实现修改生产者消费者日志保存路径

    2021-05-24 23:58:37
  • C#中将ListView中数据导出到Excel的实例方法

    2023-12-07 04:00:08
  • Java 分割字符串详解及实例代码

    2023-11-29 13:18:42
  • 解析Java内存分配和回收策略以及MinorGC、MajorGC、FullGC

    2023-02-06 08:22:19
  • 解析Android横竖屏切换的问题

    2021-07-20 11:37:58
  • Java过滤器Filter详解

    2022-06-27 04:08:44
  • java自动装箱拆箱深入剖析

    2023-09-03 08:45:19
  • SpringBoot整合TomCat实现本地图片服务器代码解析

    2021-07-30 16:34:19
  • C#如何自动识别文件的编码

    2022-10-08 01:41:43
  • C++ 风靡一时的连连看游戏的实现流程详解

    2022-10-08 13:39:12
  • asp之家 软件编程 m.aspxhome.com