Tomcat 参数配置相关
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 参数配置相关的更多相关文章
- Nginx 参数配置相关
Nginx参数配置相关 by:授客 QQ:1033553122 目的: 对Nginx配置的点滴学习总结,主要目的在于分析Nginx与性能相关的一些参数设置,以便性能调优时选择最优配置 环境: $ ...
- Spring Boot 学习系列(11)—tomcat参数配置建
此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在SpringBoot项目中,使用的是内嵌的Tomcat容器,相关的配置项如下表: 除去和默认值相同的配置, ...
- Tomcat参数配置
一.调整JVM参数 JAVA_OPTS= -server -Xms256m -Xmx1024m 注: -server: 启用服务器模式 一定要作为第一个参数,如果CPU多,服务器机建议使用此项 -Xm ...
- JDK+MyEclipse+Tomcat的配置(修改Tomcat 6.x的端口)
修改tomcat的端口,在conf目录里的server.xml文件 例如想将端口修改为8080则将port的值修改为8081,其余值不变 通过Tomcat服务器访问 想通过浏览器访问这个页面,需要在T ...
- Spring Boot tomcat参数
主题 初学SpringBoot,想要配置一下tomcat的端口,以前tomcat直接在它的XML里配置就好了.现在SpringBoot直接继承了,不知道哪里配置.后来找到解决方法,记录一下. 具体方法 ...
- 转:浅谈UNIX下Apache的MPM及httpd.conf配置文件中相关参数配置
为什么要并发处理 以Apache为代表的web服务器中,如果不支持并发,则在一个客户端连接的时候,如果该客户端的任务没有处理完,其他连接的客户端将会一直处于等待状态,这事不可想象的,好像没有为什么要不 ...
- tomcat及nginx相关,格式化输出,配置及日志解析
1.https://www.cnblogs.com/jingmoxukong/p/8258837.html?utm_source=gold_browser_extension Tomcat ...
- 5G RRC——为NAS层提供连接管理,消息传递等服务; 对接入网的底层协议实体提供参数配置的功能; 负责UE移动性管理相关的测量、控制等功能
from:http://www.cnblogs.com/kkdd-2013/p/3868676.html 1 RRC协议功能 为NAS层提供连接管理,消息传递等服务: 对接入网的底层协议实体提供参数配 ...
- MyEclipse中Tomcat对应JVM的参数配置
MyEclipse中Tomcat对应JVM的参数配置: -Xmx512M -Xms256M -XX:MaxPermSize=256m
随机推荐
- 平衡二叉树(AVL)介绍及其实现
一.平衡二叉树 任何一个数据的查找过程都需要从根结点出发,沿某一个路径朝叶子结点前进.因此查找中数据比较次数与树的形态密切相关. 对于二叉树来说,当树中每个结点左右子树高度大致相同时,树高为logN. ...
- http请求抓包神器-Fiddler(记录和检查你电脑的所有http通讯)
Fiddler是做什么的,能帮助我们做什么? 1.能够监听http/httpS的流量,可以截获从浏览器或者客户端软件向服务器发送的http/https请求: 2.对截获之后的请求,我们还能够查看请求中 ...
- [Swift]LeetCode64. 最小路径和 | Minimum Path Sum
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...
- CMake根据平台移植检查设置文件编译选项
#添加函数检查功能 include(CheckFunctionExists) //检查系统是否支持accpet4,将检查结果设置至HAVE_ACCEPT4 check_function_exists( ...
- iOS学习——页面的传值方式
一.简述 在iOS开发过程中,页面跳转时在页面之间进行数据传递是很常见的事情,我们称这个过程为页面传值.页面跳转过程中,从主页面跳转到子页面的数据传递称之为正向传值:反之,从子页面返回主页面时的数据传 ...
- java面向对象三大特性:封装、继承、多态
一.封装 封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系.也就是说用户 ...
- python预编译函数compile,exec,eval
funcname = "func" func = "def %s():\n" % funcname funccontent = 'print "hel ...
- 编译安装mysql5.7.24踩的坑
1.报错如下:CMake Error at cmake/boost.cmake:76 (MESSAGE): You can download it with -DDOWNLOAD_BOOST=1 - ...
- Zara带你快速入门WPF(4)---Command与功能区控件
前言:许多数据驱动的应用程序都包含菜单和工具栏或功能区控件,允许用户控制操作,在WPF中,也可以使用功能区控件,所以这里介绍菜单和功能区控件. 一.菜单控件 在WPF中,菜单很容易使用Menu和Men ...
- localStorage之本地储存
一.定义json var employees = [{ "firstName":"Bill" , "lastName":"Gate ...