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. [Swift]LeetCode71. 简化路径 | Simplify Path

    Given an absolute path for a file (Unix-style), simplify it. For example,path = "/home/", ...

  2. [Swift]LeetCode457. 环形数组循环 | Circular Array Loop

    You are given an array of positive and negative integers. If a number n at an index is positive, the ...

  3. [Swift]LeetCode874. 模拟行走机器人 | Walking Robot Simulation

    A robot on an infinite grid starts at point (0, 0) and faces north.  The robot can receive one of th ...

  4. [Swift]LeetCode903. DI 序列的有效排列 | Valid Permutations for DI Sequence

    We are given S, a length n string of characters from the set {'D', 'I'}. (These letters stand for &q ...

  5. Java集合类的那点通俗的认知

    文/沉默王二 开门见山地说吧,Java提供了一套完整的集合类(也可以叫做容器类)来管理一组长度可变的对象(也就是集合的元素),其中常见的类型包括List.Set.Queue和Map.从我个人的编程经验 ...

  6. Solaris 11 配置IP地址

    查看ipipadm show-addr 删除IP地址ipadm delete-addr net0/v4 配置IP地址ipadm create-addr –T static –a local=10.90 ...

  7. HashTable与ConcurrentHashMap的区别

  8. PHP中的反射

    PHP中的反射 PHP5 具有完整的反射 API,添加了对类.接口.函数.方法和扩展进行反向工程的能力. 此外,反射 API 提供了方法来取出函数.类和方法中的文档注释. 请注意部分内部 API 丢失 ...

  9. LeetCode专题-Python实现之第20题:Valid Parentheses

    导航页-LeetCode专题-Python实现 相关代码已经上传到github:https://github.com/exploitht/leetcode-python 文中代码为了不动官网提供的初始 ...

  10. C++STL模板库适配器之stack容器

    目录 适配器 一丶适配器简介 二丶栈(stack)用法 1.栈的常用方法 适配器 一丶适配器简介 Stl中的适配器,有栈 (stack) 队列 queue 根priority_queue 适配器都是包 ...