Tomcat参数配置相关

by:授客 QQ:1033553122

目的:

对Tomcat配置的点滴学习总结,主要目的在于分析Tomcat与性能相关的一些参数设置,以便性能调优时选择最优配置

 

环境:

Server version: Apache Tomcat/9.0.0.M1

Java8

 

配置文件说明

1. server.xml

<?xml version='1.0' encoding='utf-8'?>

<!--connectors可使用一个共享的executor(执行器),可定义一个、多个命名的线程池-->

<!--

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

maxThreads="150" minSpareThreads="4"/>

-->

主要属性说明:

name:供server.xml中其它位置引用。Name必填且唯一。

namePrefix:为每个由executor线程创建的线程的名称前缀。单个线程的线程名称为namePrefix+threadNumber

maxThreads:线程池中活动线程的最大数量,默认200

minSpareThreads:始终打开的最小不活跃线程数,默认是25。(The minimum number of threads always kept alive, default is 25)

maxIdleTime:设置超过多久关闭空闲线程(idle thread),默认值60000ms(1分钟)。仅在活动线程数超过minSpareThreads时才会关闭空闲线程。

maxQueueSize:排队等待执行的最大可执行任务数。默认值为Integer.MAX_VALUE。超过该值则拒绝新的任务

prestartminSpareThreads:是否在开启执行器Executor时,就生成minSpareThreads个线程,默认false。(WhetherminSpareThreads should be started when starting the Executor or not)

threadRenewalDelay:如果配置了ThreadLocalLeakPreventionListener,将通知该执行器context已停止相关信息。在停止context后,将在线程池重建线程。为了避免同一时间重建所有线程,该选项在设置了每两次重建线程的时间间隔。单位ms,默认值1000ms。如果值为负数,不重新新建线程。

<!-- "Connector" 代表了请求接收端和响应返回端(A "Connector" represents an endpoint by which requests are received)。以下在端口8080,定义了一个非SSL/TLS HTTP/1.1的连接器

-->

参考连接:http://tomcat.apache.org/tomcat-9.0-doc/config/executor.html

<!-- 配置"Connector"使用的共享线程池-->

<!--

<Connector executor="tomcatThreadPool"

port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"

compression="on"

compressionMinSize="50"

noCompressionUserAgents="gozilla, traviata"

compressableMimeType="text/plain,application/x-javascript,text/css,

text/javascript,application/json"

/>

-->

主要属性说明(针对HTTP/1.1):

executor:指定Executor的名称。如果Executor存在,那么connector(连接器)将使用该执行器,并且所有其它的线程属性都会被忽略。注意,如果没有为连接器指定共享执行器,那么连接器将使用一个内部私有的,执行器来提供线程池。

port:Connector用于监听新连接请求并创建服务端socket的TCP端口。操作系统仅允许一个服务端应用在同一个指定IP上监听指定端口。如果设置port值为0,那么Tomcat将为该连接器随机查询一个空闲端口。

protocol:设置协议。默认HTTP/1.1

connectionTimeout:设置Connector等待连接超时时间,单位毫秒。设置-1,则表示无限等待。默认值60000,即60分钟,但是Tomcat会把标准server.xml设置为2000。除非disableUploadTimeout设置为false,否则,该超时时间也会用于读取请求体的超时时间(如果有必要的话)

redirectPort:如果Connector支持非SSL请求,且收到一个匹配 <security-constraint>约束,要求SSL传输的请求,那么,Catalina会自动把请求重定向到这个指定的端口。

注:以下字段在默认配置中未体现

compression:Connector可能使用HTTP/1.1 GZIP压缩,以减少服务器带宽。可选值:off|on|force|整数,off-禁用压缩,on-开启压缩,这会导致text文本数据被要锁, force-所有情况下都进行压缩,整数-等同on,不同的是指定了最少压缩数据量,即数据大小超过指定数量的数据才进行压缩。如果content-length未知,且compression 设置为"on"或者其它非off值,将会压缩请求输出,即请求体。如果不指定,属性将被设置为off。

注意: 在使用compression(节约带宽)和使用sendfile功能(节约cpu)之间有个权衡,如果connector支持sendfile功能,比如NIO connector,那么将优先使用sendfile,结果是超过48k的静态文件将不压缩直接发送。可通过设置connector的useSendfile 属性值来关闭sendfile。或者在 DefaultServlet默认conf/web.xml、web应用的web.xml中修改sendfile阈值配置。

compressionMinSize:如果compression设置为on,该属性用于指定最小起压数据量,即超过compressionMinSize指定值才进行压缩。 默认值 "2048"。

noCompressionUserAgents:该值为正则表达式(使用java.util.regex),匹配http客户端user-agent头,如果匹配则不使用compression,也就是说设置哪些客户端发出的请求不做压缩处理。因为一些客户端自身已经实现了这个功能。参考网络资料,通常设置为"gozilla, traviata"。默认值为空字符串(禁用正则表达式匹配)

compressableMimeType:设置使用那种HTTP压缩,逗号分隔。默认值为text/html,text/xml,text/plain,text/css,text/javascript,application/javascript。

acceptCount:当所有可能用于处理请求的线程都在使用中时,进到服务器的连接请求的最大队列长度。当请求队列已满时,接受到的任意请求都被拒绝。最大请求队列长度值默认: 100。

maxThreads:由Connector创建的用于处理请求的最大线程数,这决定了同时可以处理的最大请求数。默认的,该值为200.如果该connector和某个executor相关联,那么connector将忽略该属性,并使用executor的执行任务,而非采用内部线程的。

更多资料,参考连接:http://tomcat.apache.org/tomcat-9.0-doc/config/http.html

2. web.xml

<!-- ==================== 默认的会话配置================= -->

<!-- 可以通过修改以下的值来为所有新建的会话设置默认的会话超时时间,单位 分钟-->

<session-config>

<session-timeout>30</session-timeout>

</session-config>

3. 内存配置

linux修改TOMCAT_HOME/bin/catalina.sh,在前面加入

JAVA_OPTS="-Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"

windows修改TOMCAT_HOME/bin/catalina.bat,在前面加入

set JAVA_OPTS=-Xms512m -Xmx1024m

注意:内存配置做法来自网络资料,未验证

Tomcat 参数配置相关的更多相关文章

  1. Nginx 参数配置相关

    Nginx参数配置相关 by:授客 QQ:1033553122 目的: 对Nginx配置的点滴学习总结,主要目的在于分析Nginx与性能相关的一些参数设置,以便性能调优时选择最优配置   环境: $ ...

  2. Spring Boot 学习系列(11)—tomcat参数配置建

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在SpringBoot项目中,使用的是内嵌的Tomcat容器,相关的配置项如下表: 除去和默认值相同的配置, ...

  3. Tomcat参数配置

    一.调整JVM参数 JAVA_OPTS= -server -Xms256m -Xmx1024m 注: -server: 启用服务器模式 一定要作为第一个参数,如果CPU多,服务器机建议使用此项 -Xm ...

  4. JDK+MyEclipse+Tomcat的配置(修改Tomcat 6.x的端口)

    修改tomcat的端口,在conf目录里的server.xml文件 例如想将端口修改为8080则将port的值修改为8081,其余值不变 通过Tomcat服务器访问 想通过浏览器访问这个页面,需要在T ...

  5. Spring Boot tomcat参数

    主题 初学SpringBoot,想要配置一下tomcat的端口,以前tomcat直接在它的XML里配置就好了.现在SpringBoot直接继承了,不知道哪里配置.后来找到解决方法,记录一下. 具体方法 ...

  6. 转:浅谈UNIX下Apache的MPM及httpd.conf配置文件中相关参数配置

    为什么要并发处理 以Apache为代表的web服务器中,如果不支持并发,则在一个客户端连接的时候,如果该客户端的任务没有处理完,其他连接的客户端将会一直处于等待状态,这事不可想象的,好像没有为什么要不 ...

  7. tomcat及nginx相关,格式化输出,配置及日志解析

    1.https://www.cnblogs.com/jingmoxukong/p/8258837.html?utm_source=gold_browser_extension       Tomcat ...

  8. 5G RRC——为NAS层提供连接管理,消息传递等服务; 对接入网的底层协议实体提供参数配置的功能; 负责UE移动性管理相关的测量、控制等功能

    from:http://www.cnblogs.com/kkdd-2013/p/3868676.html 1 RRC协议功能 为NAS层提供连接管理,消息传递等服务: 对接入网的底层协议实体提供参数配 ...

  9. MyEclipse中Tomcat对应JVM的参数配置

    MyEclipse中Tomcat对应JVM的参数配置: -Xmx512M -Xms256M -XX:MaxPermSize=256m

随机推荐

  1. app性能测试,你需要关注哪些指标?

    app性能测试,你需要关注哪些指标? 一.Android客户端性能测试常见指标: 1.内存 2.CPU 3.流量 4.电量 5.启动速度 6.滑动速度.界面切换速度 7.与服务器交互的网络速度 二.预 ...

  2. [Swift]LeetCode207. 课程表 | Course Schedule

    There are a total of n courses you have to take, labeled from 0 to n-1. Some courses may have prereq ...

  3. [Swift]LeetCode926. 将字符串翻转到单调递增 | Flip String to Monotone Increasing

    A string of '0's and '1's is monotone increasing if it consists of some number of '0's (possibly 0), ...

  4. [Swift]LeetCode953. 验证外星语词典 | Verifying an Alien Dictionary

    In an alien language, surprisingly they also use english lowercase letters, but possibly in a differ ...

  5. [Swift]LeetCode995. K 连续位的最小翻转次数 | Minimum Number of K Consecutive Bit Flips

    In an array A containing only 0s and 1s, a K-bit flip consists of choosing a (contiguous) subarray o ...

  6. SpringCloud微服务架构

    1.Eureka承载大规模系统每天千万级访问的原理 1).首先每个服务的eureka client组件默认30秒发送一个请求到eureka server拉取最近有变化的服务信息: 2).eureka还 ...

  7. Node.js 多版本安装

    Node.js 多版本安装 Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine(Node.js 是一个基于 ...

  8. Pycharm、IDEA等汉化教程

    本汉化教程对jetbrains全系列可用:IDEA.Pycharm.WebStorm.phpstorm.AndroidStudio.GoLand.RubyMine.CLion 此汉化无副作用,绝对安全 ...

  9. .NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了

    写在前面 上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制,当然介绍的都是比较常用的功能.今天我再带着大家一起熟悉下一个ORM框架Dapper,实例代码的演示编写完成后我会通过Git ...

  10. Centos7 防火墙 firewalld 实用操作

    一.前言 Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙.其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤 ...