• Springboot内置Tomcat配置参数调优


    Springboot内置Tomcat配置参数调优,首先,线程数是一个重点,每一次HTTP请求到达Web服务器,Web服务器都会创建一个线程来处理该请求,该参数决定了应用服务同时可以处理多少个HTTP请求。

    比较重要的有两个:初始线程数_和_最大线程数

    初始线程数:**保障启动的时候,如果有大量用户访问,能够很稳定的接受请求。**最大线程数:用来保证系统的稳定性。

    超时时间:用来保障连接数不容易被压垮。如果大批量的请求过来,延迟比较高,很容易把线程数用光,这时就需要提高超时时间。这种情况在生产中是比较常见的 ,一旦网络不稳定,宁愿丢包也不能把服务器压垮

    min-spare-threads:最小备用线程数,tomcat启动时的初始化的线程数,默认10。(适当增大一些,以便应对突然增长的访问量)

    max-threads:Tomcat可创建的最大的线程数,每一个线程处理一个请求,超过这个请求数后,客户端请求只能排队,等有线程释放才能处理。最大工作线程数,默认200。(4核8g内存,线程数800,一般是核数*200。操作系统做线程之间的切换调度是有系统开销的,所以不是越多越好。)

    accept-count:当调用Web服务的HTTP请求数达到tomcat的最大线程数时,还有新的HTTP请求到来,这时tomcat会将该请求放在等待队列中,这个acceptCount就是指能够接受的最大等待数,默认100。如果等待队列也被放满了,这个时候再来新的请求就会被tomcat拒绝(connection refused),队列也做缓冲池用,但也不能无限长,不但消耗内存,而且出队入队也消耗CPU。

    max-connections:这个参数是指在同一时间,tomcat能够接受的最大连接数。一般这个值要大于(max-threads)+(accept-count)。

    connection-timeout:最长等待时间,如果没有数据进来,等待一段时间后断开连接,释放线程。

    在spring boot配置文件中application.yml,添加以下配置:

    server:
      tomcat:
        uri-encoding: UTF-8
        #最小线程数
        min-spare-threads: 100
        #最大线程数
        max-threads: 800
        #最大链接数
        max-connections: 10000
        #最大等待队列长度
        accept-count: 500
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    Python连接MYSQL、SQL Server、Oracle数据入库一网打尽
    【力扣】13. 罗马数字转整数
    redis分布式锁实现
    应用案例 | 基于三维机器视觉的机器人麻袋拆垛应用解决方案
    「PAT乙级真题解析」Basic Level 1109 擅长C (问题分析+完整步骤+伪代码描述+提交通过代码)
    在React中的函数组件和类组件——附带示例的对比
    第九章、ansible基于roles角色管理大项目
    2022年 证券期货业信息技术服务连续性管理指南
    前端面试(2)——页面布局
    分卷压缩与解压分卷
  • 原文地址:https://blog.csdn.net/m0_67401153/article/details/126114451