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. &和&&的共同点和区别、Java字符含义和Java创建对象的几种方式

    一.&和&&的共同点和区别 1.&和&&的联系(共同点): &和&&都可以用作逻辑与运算符,但是要看使用时的具体条件来决定. 操 ...

  2. ALL_SOURCE

    类型:View Owner: SYS 内容: 记录了该用户可访问的所有数据库对象的脚本信息(DDL) 字段:  OWNER: 对象的Owner NAME: 对象名称 TYPE: 对象类型,如FUNCT ...

  3. 推荐一款接口 API 设计神器!

    今天栈长给大家推荐一款接口 API 设计神器,传说中的,牛逼哄洪的 Swagger,它到底是什么?今天为大家揭开谜底! Swagger是什么? 官网:https://swagger.io/ Swagg ...

  4. [Reversing.kr] Easy_KeygenMe Writeup

    IDA打开.Main()函数就是关键算法 v6,v7,v8 是连续的 .可看成 L=[16,32,48].输入的name每位分别于L[]异或 得到的值存在v13.然后清空v9的值 ,输入Serial储 ...

  5. 一张脑图说清 Nginx 的主流程

    一张脑图说清 Nginx 的主流程 这个脑图在 nginx-1.14.0-research 上.这是我在研究nginx的http模块的时候画的.基本上把 Nginx 主流程(特别是 HTTP 的部分) ...

  6. Python爬虫入门教程 6-100 蜂鸟网图片爬取之一

    1. 蜂鸟网图片--简介 国庆假日结束了,新的工作又开始了,今天我们继续爬取一个网站,这个网站为 http://image.fengniao.com/ ,蜂鸟一个摄影大牛聚集的地方,本教程请用来学习, ...

  7. CSDN新版Markdown编辑器(Alpha 2.0版)使用示例(文首附源码.md文件)

    CSDN新版Markdown编辑器(Alpha 2.0版) 使用示例 附 本文的Markdown源码: https://github.com/yanglr/AlgoSolutions/blob/mas ...

  8. Java__线程---基础知识全面实战---坦克大战系列为例

    今天想将自己去年自己编写的坦克大战的代码与大家分享一下,主要面向学习过java但对java运用并不是很熟悉的同学,该编程代码基本上涉及了java基础知识的各个方面,大家可以通过练习该程序对自己的jav ...

  9. Jenkins自定义主题

    x下载自定义样式 http://afonsof.com/jenkins-material-theme/ 打开连接 最后点击:DOWNLOAD TOUR THEME! 得到样式文件:jenkins-ma ...

  10. JSP面试题都在这里

    下面是我整理下来的JSP知识点: 图上的知识点都可以在我其他的文章内找到相应内容. JSP常见面试题 jsp静态包含和动态包含的区别 jsp静态包含和动态包含的区别 在讲解request对象的时候,我 ...