tomcat默认最大连接数与调整的方法示例

一般来说我们都是用tomcat默认的配置做基础的本地开发,测试及生产肯定不用tomcat啦,正式一点的企业肯定换大型容器了,当然不排除还是用tomcat或者它的集群的,言归正传,tomcat的连接数相关配置及修改干货如下:

在tomcat配置文件server.xml中的<Connector  />标签配置中,和连接数相关的参数有下面几个(如果你现在看肯定都没有的):

  • minProcessors------------------最小空闲连接线程数,用于提高系统处理性能,默认值为10
  • maxProcessors-----------------最大连接线程数,即:并发处理的最大请求数,默认值为75
  • acceptCount---------------------允许的最大连接数,应大于等于maxProcessors,默认值为100
  • enableLookups-----------------是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
  • connectionTimeout------------网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

P.S.如果你要手动增加这些链接相关参数,那么根据以上参数肯定是找不到的,官方文档提示需要搞另外两个参数才能加大并发连接数,那就是maxProcessors和acceptCount。

官方原话及翻译:

If more simultaneous requests are received than can be handled by the currently available request processing threads, additional threads will be created up to the configured maximum (the value of the maxThreads attribute).

如果接收到的并发请求比当前可用的请求处理线程所能处理的更多,则将创建额外的线程到配置的最大值(maxThreads 属性)。

If still more simultaneous requests are received, they are stacked up inside the server socket created by the Connector, up to the configured maximum (the value of the acceptCount attribute).

如果接收到更多的并发请求,则它们被堆叠在由连接器创建的服务器套接字内,直到配置的最大值(acceptCount 属性)。

所以需要设置的是maxThreads和acceptCount这两个值,两者的默认值分别是200和100,要调整Tomcat的默认最大连接数,可以增加这两个属性的值,并且使acceptCount大于等于maxThreads:

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" acceptCount="300" maxThreads="200" />

并发请求数 <= tomcat最大线程数200,可以看到200个请求,响应结果正常
并发数(201) >tomcat最大线程数200.可以看到,因为tomcat最大的线程数为200,201的并发请求量,超出了并发处理的数量200,多出来的1个请求,需要等待某个处理中的请求处理完成
请求数超过最大连接数300,可以看到有大量的没有正常响应的http请求,原因很简单,因为超过了tomcat设置的最大连接数,服务器拒绝了该次请求的连接

增加线程是有成本的,JVM中默认情况下在创建新线程时会分配大小为1M的线程栈,所以更多的线程异味着更多的内存;
更多的线程会带来更多的线程上下文切换成本。

springboot中Tomcat配置建议:
最大工作线程数 ,默认200(4核8G内存,线程数经验值为800,操作系统之间做线程之间切换调度是有开销的,不是越多越好),最大连接数默认是10000,等待长度默认为100,最小工作空闲线程默认10

线程数的经验值为:1核2G内存, 线程数经验值为200,;4核8G内存,线程数经验值为800

到此这篇关于tomcat默认最大连接数与调整的方法示例的文章就介绍到这了,更多相关tomcat默认最大连接数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • springboot tomcat最大线程数与最大连接数解析

    springboot tomcat最大线程数与最大连接数 首先看看springboot内置的tomcat,该如何配置这两个参数 # 在配置文件中添加如下内容 # tomcat最大线程数,默认为200 server.tomcat.max-threads=200 # tomcat最大连接数,默认为10000(网上的说法) server.tomcat.max-connections=300 如何理解上面两个参数 为了方便理解,我这里使用了springboot编写了一个简单了的服务,包含一个模拟登录的接

  • tomcat默认最大连接数与调整的方法示例

    一般来说我们都是用tomcat默认的配置做基础的本地开发,测试及生产肯定不用tomcat啦,正式一点的企业肯定换大型容器了,当然不排除还是用tomcat或者它的集群的,言归正传,tomcat的连接数相关配置及修改干货如下: 在tomcat配置文件server.xml中的<Connector  />标签配置中,和连接数相关的参数有下面几个(如果你现在看肯定都没有的): minProcessors------------------最小空闲连接线程数,用于提高系统处理性能,默认值为10 maxPr

  • django日志默认打印request请求信息的方法示例

    需求 请求view中手动打印日志时中插入request的如下信息(每个request请求都记录可以使用中间件进行解决,但这里仅仅是在需要的地方手动打印): #统一附加日志内容 ADD_LOG = r'''{"username": request.user, "path": request.path, "request_id": request.id, "login_id": request.login_id}''' 旧的解决办

  • TOMCAT内存溢出及大小调整的实现方法

    一.tomcat内存设置问题 收藏 在使用Java程序从数据库中查询大量的数据或是应用服务器(如tomcat.jboss,weblogic)加载jar包时会出现java.lang.OutOfMemoryError异常.这主要是由于应用服务器的内存不足引起的.这种异常常有以下几种情况(以下以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理): 1. java.lang.OutOfMemoryError: PermGen space PermGen space的全称

  • 如何修改tomcat默认端口号8080的方法

    1.背景 在默认情况下,tomcat的端口是8080,使用了两个tomcat,那么就需要修改其中的一个的端口号才能使得两个同时工作. 2.方法 2.1改动一 那么,如何修改tomcat的端口号呢?首先到安装目录(或者解压目录)下找到conf文件夹,在里面找到server.xml的文件, 找到 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redire

  • 修改Tomcat默认访问根目录的方法

    在Tomcat默认安装后,tomcat的主目录是webapps/root目录. 在conf文件夹下面找到server.xml 打开 在<hosts>  ......</hosts>中间添加一行 复制代码 代码如下: <Context path="" docBase="/usr/tomcat/apache-tomcat-8.5.11/webapps/guanwang" debug="0" reloadable=&quo

  • linux系统中修改tomcat默认输入日志路径的方法

    1.修改catalina.sh 进入tomcat安装目录/bin,找到catalina.sh,先进行备份. 对本地的catalina.sh进行修改,这里是以将日志目录修改为/data/logs为例,即将$CATALINA_BASE/logs/catalina.out改为CATALINA_OUT=/data/logs. 2.修改logging.properties 进入tomcat安装目录/conf/,找到logging.properties,先进行备份. 对本地的logging.properti

  • 修改tomcat默认的端口号

    协同管理系统黙认使用Tomcat默认的端口8080,除8080端口外Tomcat还会占用8005,8009和8443端口.如果这4个端口已被占用,可以将协同管理系统修改为使用其它端口. 修改方法如下: 1.   如果机器上装有IIS或Apache Server等并仅占用了8080端口: 编辑文件"安装目录\tomcat\conf\server.xml"(可以用记事本打开) 查找到"8080"(如下红字标识处),然后替换成想设置的端口号(如9090),并保存即可. &

  • Spring Boot修改内置Tomcat默认端口号的示例

    Spring Boot 内置Tomcat默认端口号为8080,在开发多个应用调试时很不方便,本文介绍了修改 Spring Boot内置Tomcat端口号的方法. 一.EmbeddedServletContainerCustomizer接口 EmbeddedServletContainerCustomizer接口提供了customize方法用来自定义servlet容器的一些属性 如图编写实现类在customize方法中可设置容器端口号为8088 . 二.TomcatEmbeddedServletC

  • Maven 修改tomcat运行版本和端口的实现方法

    maven默认是使用tomcat6跑项目的,这段是让maven用tomcat7去跑 在pom.xml中添加 <build> <!-- we dont want the version to be part of the generated war file name --> <finalName>${project.artifactId}</finalName> <defaultGoal>compile</defaultGoal> &

  • C#图像对比度调整的方法

    本文实例讲述了C#图像对比度调整的方法.分享给大家供大家参考.具体如下: //定义对比度调整函数 private static Bitmap ContrastP(Bitmap a, double v) { System.Drawing.Imaging.BitmapData bmpData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, Syst

随机推荐