tomcat 配置文件优化

一、前言

对于tomcat的优化主要包括两个方面,一个是对Tomcat启动参数进行优化配置,另一个是Tomcat容器内的优化配置,下面分别用具体详细的参数配置说明进行分析(更多推荐“tomcat的HTTPS安全通道配置”、源码分析等)

二 、Tomcat内存优化

tomcat启动参数设置,主要在其bin目录下catalina文件(window环境对象catalina.bat、linux环境对应catalina.sh)进行设置,在文件头部复制下面参数示例,

1. Window环境

详细的配置参数如下,关于参数的详细说明参见"关于jvm内存优化部分"


1

2

3

4

5

6

7

8

9

10

11


set JAVA_OPTS=-server -Xms1400M -Xmx1400M -Xss512k 

-XX:+AggressiveOpts -XX:+UseBiasedLocking 

-XX:PermSize=128M -XX:MaxPermSize=256M 

-XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31 

-XX:+UseConcMarkSweepGC -XX:+UseParNewGC 

-XX:+CMSParallelRemarkEnabled 

-XX:+UseCMSCompactAtFullCollection

-XX:LargePageSizeInBytes=128m  

-XX:+UseFastAccessorMethods 

-XX:+UseCMSInitiatingOccupancyOnly 

-Djava.awt.headless=true

简单配置,如下:


1

set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m

标准参数(-),所有JVM都必须支持这些参数的功能,而且向后兼容;例如:

-client——设置JVM使用Client模式,特点是启动速度比较快,但运行时性能和内存管理效率不高,通常用于客户端应用程序或开发调试;在32位环境下直接运行Java程序默认启用该模式。

-server——设置JVM使Server模式,特点是启动速度比较慢,但运行时性能和内存管理效率很高,适用于生产环境。在具有64位能力的JDK环境下默认启用该模式。

非标准参数(-X),默认JVM实现这些参数的功能,但是并不保证所有JVM实现都满足,且不保证向后兼容;

非稳定参数(-XX),此类参数各个JVM实现会有所不同,将来可能会不被支持,需要慎重使用;

2. Linux环境

详细配置如下:


1

2

3

4

5

6

7

8

9

10

11

12


JAVA_OPTS="-server -Xms1400M -Xmx1400M -Xss512k 

-XX:+AggressiveOpts 

-XX:+UseBiasedLocking 

-XX:PermSize=128M -XX:MaxPermSize=256M 

-XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31 

-XX:+UseConcMarkSweepGC -XX:+UseParNewGC  

-XX:+CMSParallelRemarkEnabled 

-XX:+UseCMSCompactAtFullCollection

-XX:LargePageSizeInBytes=128m 

-XX:+UseFastAccessorMethods 

-XX:+UseCMSInitiatingOccupancyOnly 

-Djava.awt.headless=true "

简单配置如下:


1

JAVA_OPTS="$JAVA_OPTS -server -Xms800m -Xmx800m -XX:MaxNewSize=256m"

3. 单类或jar包


1

java.exe  -Xms128m -Xmx800m   Main

三、Tomcat连接器优化

tomcat本身处理最大并发有服务器系统本身上限决定(一般window的1000左右,linux为2000左右),但是默认设置只有25,因此打开其conf目录下server.xml文件,定位到如下内容,默认是比较简单的配置:


1

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

其实详细的默认缺省配置应该是:


1

2

3

4

5

6

7

8

9

10

11

12

13

14


 <Connector port="8080"

 protocol="HTTP/1.1"

 URIEncoding="UTF-8"

 minSpareThreads="25"

 maxSpareThreads="75"

 enableLookups="false"

 disableUploadTimeout="true"

 connectionTimeout="20000"

 acceptCount="300"  maxThreads="300"

 maxProcessors="1000" minProcessors="5"

 useURIValidationHack="false" compression="on"

 compressionMinSize="2048"

 compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

 redirectPort="8443"/>

URIEncoding:设置含有中文名的文件的url编码方式

minSpareThreads:初始化空闲线程数

maxSpareThreads:最大允许空闲线程存活数

connectionTimeout:网络连接超时时间毫秒数

maxThreads:tomcat可创建的最大线程并发数

acceptCount:当线程池满了,即到达maxThreads设置的值,还可以接受客户端请求数到临时队列等待区,等待线程释放后依次排队使用

maxProcessors与minProcessors:window的1000左右,linux为2000左右

compression:给Tomcat配置gzip压缩(HTTP压缩)功能,完整配置如下:


1

2


compression="on" compressionMinSize="2048"             

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain

HTTP 压缩可以大大提高浏览网站的速度,客户端请求资源后,服务器端将文件压缩,由客户端负责解压缩。相对于普通过程(HTML,CSS,Javascript,Text) ,节省40%左右流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出内容也能进行压缩,压缩效率非常高。1)compression="on" 开启压缩功能2)compressionMinSize="2048" 设置压缩的输出内容大小,默认为2KB3)noCompressionUserAgents="gozilla, traviata" 对于指定浏览器,不启用压缩4)compressableMimeType="text/html,text/xml" 压缩类型

四、NIO配置

默认配置BIO方式兼容版本,NIO(No-blocking I/O)从JDK 1.4起,NIO API作为一个基于缓冲区,并能提供非阻塞I/O操作的API被引入,如需配置如下

将默认service.xml配置


1

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

修改为


1

<Connector connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>

参考博文:http://www.xwood.net/_site_domain_/_root/5870/5874/t_c255466.html

时间: 2024-07-30 20:23:56

tomcat 配置文件优化的相关文章

Tomcat服务器优化

由于Tomcat的运行依赖于JVM,从虚拟机的角度我们把Tomcat的调整分为外部环境调优和自身调优两类来描述. 1.JDK内存优化 根据服务器物理内容情况配置相关参数优化tomcat性能.当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃.因此一般建议堆的最大值设置为可用内存的最大值的80%. Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大. Tomcat默认可以使用的内存为128MB,Windows下,在文件/bin

tomcat简单优化

我的优化配置: JAVA_OPTS="-Xms16384m -Xmx16384m -Xloggc:/home/soft/8080_gc.log -Xss256k -Xmn6144m -XX:PermSize=1024m -XX:MaxPermSize=1024m -XX:SurvivorRatio=6 -XX:MaxTenuringThreshold=7 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSFullGCsBeforeCompaction

tomcat 8优化配置

Tomcat 8 下载:wget http://apache.fayea.com/tomcat/tomcat-8/v8.0.32/bin/apache-tomcat-8.0.32.tar.gz 压缩包解压:tar -zxvf apache-tomcat-8.0.32.tar.gz 移到解压出来文件夹到 /usr 下:mv apache-tomcat-8.0.32/ /usr/program/ 为了方便,修改解压目录的名字:mv /usr/program/apache-tomcat-8.0.32/

tomcat服务器配置优化

tomcat服务器个配置优化 一.Tomcat内存优化 T omcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS参数. 1.JAVA_OPTS参数说明 -server  启用jdk 的 server 版: -Xms    java虚拟机初始化时的最小内存: -Xmx   java虚拟机可使用的最大内存: -XX:PermSize    内存永久保留区域 -XX:MaxPermSize   内存最大永久保留

tomcat高性能优化配置

1.精简Tomcat和配置文件 1.删除不需要的管理应用和帮助应用,提高tomcat安全性. # 删除webapps下所有文件 # rm –fr $CATALINA_HOME/webapps/* # 删除server/wenapps下所有文件 # rm –fr $CATALINA_HOME/server/webapps/* 2.精简sever.xml配置文件 使用tomcat发布版本中的最小配置文件,提高性能,如果有功能上的需求,在逐个的加入功能配置. # 备份原来的server.xml为ser

Tomcat的优化

Tomcat的优化配置 修改tomcat的config目录下server.xml文件 <Connector port="9021"  protocol="HTTP/1.1"  executor="tomcatThreadPool" URIEncoding="UTF-8"  maxThreads="2000" maxConnections="1000"  connectionTime

tomcat参数优化

一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS 参数. 1.JAVA_OPTS参数说明 Java代码 -server  启用jdk 的 server 版: -Xms      java虚拟机初始化时的最小内存: -Xmx      java虚拟机可使用的最大内存: -XX:PermSize    内存永久保留区域 -XX:MaxPermSize   内存最大永久保留区域

Tomcat调优总结(Tomcat自身优化、Linux内核优化、JVM优化)

Tomcat自身的调优是针对conf/server.xml中的几个参数的调优设置.首先是对这几个参数的含义要有深刻而清楚的理解.以tomcat8.5为例,讲解参数. 同时也得认识到一点,tomcat调优也受制于linux内核.linux内核对tcp连接也有几个参数可以调优. 因此我们可以将tomcat调优分为linux内核优化.java虚拟机调优和tomcat自身的优化. 一.Tomcat自身优化 1. maxThreads :tomcat创建的最大线程数,也就是同时处理的请求最大并发数.默认值

JVM虚拟机详解+Tomcat性能优化

1.JVM(java virtual mechinal) (1)JVM有完善的硬件架构,如处理器.堆栈.寄存器当,还具有相应的指令系统. (2)JVM的主要工作时解释自己的指令集(即字节码),并映射到本地的cpu的指令集或OS系统调用. 2.JVM虚拟机主要有堆.栈.本地方法栈.方法区组成 注:(1)堆和栈都是一种数据项按序排列的数据结构,只能在一端对数据项进行插入和删除. (2)在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护端点和现场. (3)堆.队列,先进先