Tomcat生产环境配置优化集合
- 格式:pdf
- 大小:445.85 KB
- 文档页数:7
Tomcat性能调优方案一、操作系统调优对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高cpu的频率,保证文件系统的读写速率等。
经过压力测试验证,在并发连接很多的情况下,cpu的处理能力越强,系统运行速度越快。
【适用场景】任何项目。
二、java虚拟机调优必须挑选sun的jvm,在满足用户项目须要的前提下,尽量采用版本较低的jvm,一般来说低版本产品在速度和效率上比低版本可以存有改良。
jdk1.4比jdk1.3性能提升将近10%-20%,jdk1.5比jdk1.4性能提升25%-75%。
因此对性能建议较低的情况所推荐采用jdk1.6。
【适用于场景】任何项目。
三、apache内置tomcat如果一个项目中大量使用了静态页面、大量的图片等,并有有较大的访问量,推荐使用apache集成tomcat的方式来提高系统的整体性能。
相对于jk的相连接方式,后两种在布局上比较简单的,灵活性方面也一点都不逊色。
但就稳定性而言不像是jk这样久经考验,所以建议使用jk的相连接方式。
apache+jk+tomcat布局:1.安装apache服务器2.部署tomcat【适用于场景】大量采用静态页面的应用领域系统。
四、apache和tomcat集群方式,这种方式比较灵活,成本相对比较低,另外一个很大的优点就是可以根据应用情况和服务器的情况做一些灵活的配置。
所以推荐使用apache+tomcat集群来实现负载均衡。
使用tomcat集群可以最小程度的充分发挥服务器的性能,可以在布局较低的服务器上部署多个tomcat,也可以在多台服务器上分别部署tomcat,apache和tomcat资源整合的方式还是jk方式。
经过检验,系统对小用户量采用的积极响应方面,apache+3tomccat集群>apache+2tomcat集群>apache内置tomcat>单个tomcat。
并且使用apache+多tomcat集群的部署方式时,如果一个tomcat发生宕机,系统可以稳步采用,所以在硬件系统性能足够多得天独厚的情况下,须要尽量充分发挥软件的性能,可以使用减少tomcat 集群的方式。
Tomcat的常用设置及优化当我们公司使用tomcat作为web应用服务器的规模越来越大,为保证T omcat配置安全,防止信息泄露,恶意攻击以及配置的安全规范,特制定此T omcat安全配置规范。
1|1Tomcat用户设置useradd -d /tomcat -u 501 tomcatecho "123" |passwd --stdin tomcatsu - tomcatid tomcat# uid=501(tomcat) gid=1000(tomcat) groups=1000(tomcat) pwd# /tomcat1|2Tomcat配置wgethttps:///apache/tomcat/tomcat-8/v8.5.55/bin/apache-tomcat-8.5.55.tar.gztail -5 .bash_profileJAVA_HOME=/usr/local/jdkexport PATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export CATALINA_HOME=/usr/local/tomcat1|3应用程序配置mkdir webappstar xvf apache-tomcat-8.5.55.tar.gz -C /tomcat/webapps//tomcat/webapps/apache-tomcat-8.5.55/bin/startup.sh2|0安全设置规范2|1telnet管理端口保护(强制)2|2ajp链接端口保护(推荐)2|3禁用管理端(强制)tomcat/webapps/*tomcat/conf/tomcat-user.xml 2|4降权启动(强制)2|5文件列表访问控制(强制)2|6版本信息隐藏(强制)2|7Server header重写(推荐)2|8访问限制(可选)2|9起停脚本权限回收(推荐)chmod 744–R tomcat/bin/* 2|10访问日志格式规范(推荐)2|11屏蔽DNS查询enableLookups: 调用request,getRemoteHost()执行DNS查询,以返回远程主机的主机名,如果设置为false,<Connector enableLookups="false"/>2|12压缩管理tomcat作为一个应用服务器,也是支持gzip 压缩功能的。
Tomcat 的内存配置及优化Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java 虚拟机。
你能选择自己的需要选择不同的操作系统和对应的JDK的版本(只要是符合Sun 发布的Java规范的),但我们推荐你使用Sun公司发布的JDK。
确保你所使用的版本是最新的,因为Sun公司和其他一些公司一直在为提高性能而对java虚拟机做一些升级改进。
一些报告显示JDK1.4在性能上比JDK1.3提高了将近10%到20%。
能给Java虚拟机设置使用的内存,不过如果你的选择不对的话,虚拟机不会补偿。
可通过命令行的方式改动虚拟机使用内存的大小。
如下表所示有两个参数用来设置虚拟机使用内存的大小。
参数描述-XmsJVM初始化堆的大小-XmxJVM堆的最大值这两个值的大小一般根据需要进行设置。
初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。
一般而言,这个参数不重要。
不过有的应用程式在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。
由于这种原因,我们一般把-Xms和-Xmx设为相同大,而堆的最大值受限于系统使用的物理内存。
一般使用数据量较大的应用程式会使用持久对象,内存使用有可能迅速地增长。
当应用程式需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。
因此一般建议堆的最大值设置为可用内存的最大值的80%。
Tomcat默认能使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。
视窗系统下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:JAVA_OPTS=’-Xms【初始化内存大小】-Xmx【能使用的最大内存】’需要把这个两个参数值调大。
例如:JAVA_OPTS=’-Xms256m -Xmx512m’表示初始化内存为256MB,能使用的最大内存为512MB。
tomcat常用的调优参数Tomcat常用的调优参数Tomcat是一个开源的Java Servlet容器,广泛应用于Java Web 应用程序的部署和运行。
为了提高Tomcat的性能和稳定性,我们可以通过调优参数来优化其配置。
本文将介绍一些常用的Tomcat 调优参数,帮助您更好地配置和优化T omcat服务器。
1. 内存设置- -Xms: 设置JVM的初始堆大小,建议设置为物理内存的1/4或1/3。
- -Xmx: 设置JVM的最大堆大小,建议设置为物理内存的1/2或2/3。
- -XX:MaxPermSize: 设置JVM的永久代大小,建议设置为256MB或512MB。
- -XX:MaxMetaspaceSize: 设置JVM的元空间大小,建议设置为256MB或512MB。
2. 线程设置- maxThreads: 设置Tomcat的最大线程数,建议根据服务器的硬件配置和并发请求数进行调整。
- acceptCount: 设置Tomcat接受请求的队列大小,建议设置为200或300。
- connectionTimeout: 设置Tomcat的连接超时时间,建议设置为30秒或60秒。
3. 连接器设置- protocol: 设置连接器的协议,常用的有HTTP/1.1和AJP/1.3。
- port: 设置连接器的监听端口,建议使用80端口作为HTTP连接器的默认端口。
- maxKeepAliveRequests: 设置每个Keep-Alive连接的最大请求数,建议设置为100或200。
- keepAliveTimeout: 设置Keep-Alive连接的超时时间,建议设置为5秒或10秒。
4. 缓存设置- cacheSize: 设置Tomcat的静态文件缓存大小,建议根据静态文件的数量和大小进行调整。
- cacheTTL: 设置静态文件缓存的过期时间,建议设置为1小时或更长。
- cacheObjectMaxSize: 设置缓存对象的最大大小,建议根据缓存对象的平均大小进行调整。
TOMCAT服务器中的性能优化Tomcat是一款开源的Java Servlet容器,广泛应用于企业级Web应用程序的开发和运行。
由于其使用方便、可灵活配置的优点,被越来越多的开发者所喜爱,并成为了Java Web开发的重要组成部分。
然而,Tomcat服务器在高并发的情况下可能会出现性能问题,影响Web应用程序的正常运行。
因此,本文将介绍Tomcat服务器中的性能优化方法,帮助开发者更好地优化自己的Web应用程序。
一、Tomcat的架构在进行Tomcat服务器的性能优化前,我们需要了解其架构。
Tomcat服务器的架构主要包括以下几个组件:1. Servlet容器:负责处理HTTP请求和响应,并将它们转发给相应的Servlet。
2. 连接器:负责与客户端建立TCP连接、处理协议和编解码等任务。
3. Engine:Tomcat服务器的核心组件,负责管理虚拟主机、容器和线程池等资源。
4. Host:虚拟主机,负责处理来自特定主机的请求,并将请求转发给相应的Context。
5. Context:Web应用程序的执行环境,包括Servlet、JSP和静态文件等资源。
6. Valve:过滤器,可以拦截请求和响应,并在它们到达目的地之前对它们进行处理。
了解Tomcat服务器的架构有助于我们更好地理解性能优化的方法和原理。
二、基础优化在进行高级优化前,我们需要进行一些基础优化,以确保Tomcat服务器的最大性能。
1. 使用最新版本的Java和Tomcat:Java的性能和稳定性在不断提高,因此使用最新版本的Java和Tomcat可以提高服务器的性能和稳定性。
2. 调整Tomcat配置参数:Tomcat服务器的性能受到其配置参数的影响,因此调整Tomcat的配置参数可以提高服务器的性能。
可以通过更改server.xml文件来修改Tomcat参数。
调整参数时需要注意保持平衡,避免调整一个参数而使其他参数受到负面影响。
Tomcat配置优化⼀、tomcat内存优化打开bin下catalina.bat⽂件在⽂件的第⼀处⾮注释⾏出添加1 set JAVA_OPTS=-server -Xms2g -Xmx2g -Xss256k参数含义:-server:以server模式运⾏java程序-Xms:初始化堆内存⼤⼩-Xmx:堆内存最⼤容量-Xss:设定每个线程的堆栈⼤⼩ JDK9之前ParallelGC作为默认垃圾回收器,优化配置JVM需要设置⼤量参数,诸如-XX:NewRatio、-XX:SurvivorRatio等等,但随着JDK不断更迭,繁琐的参数已经不再需要且不再⽀持。
JDK9开始,G1作为默认的垃圾回收器,G1GC 不必明确设置新⽣代⼤⼩,其⾃动调优也⼗分可靠,对于停顿时间往往在长时间运⾏后可以达到预期效果。
不建议进⾏过多的配置。
⼆、tomcat线程池优化打开conf下server.xml全局搜索executor,在注释中可以找到,同节点位置添加:1<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" deamon="true"2 minSpareThreads="100" maxSpareThreads="300" maxThreads="600"3maxQueueSize="1000000" maxIdleTime="60000"4 prestartminSpareThreads="true"/>然后搜索Connector,找到tomcat的http连接器,添加连接器与线程池关联1<Connector port="8080" protocol="HTTP/1.1"2 connectionTimeout="20000"3 redirectPort="8443"4 executor="tomcatThreadPool"/>参数含义:namePrefix:线程池中线程的命名前缀。
tomcat 调优总结1.增加内存:可以通过修改Tomcat的启动参数来增加JVM的内存限制,从而提高Tomcat的性能。
例如:将-Xms和-Xmx修改为较大的值,如-Xms1024m和-Xmx2048m。
2. 调整线程池:Tomcat默认使用的线程池为org.apache.tomcat.util.threads.ThreadPoolExecutor,可以根据实际情况来调整线程池的大小,以提高Tomcat的并发处理能力。
3. 使用NIO:Tomcat 7及以上版本支持使用Java NIO来提高网络I/O性能。
可以通过修改server.xml文件中的Connector配置来启用NIO。
4. 压缩响应数据:对于一些需要传输大量数据的请求(如文件下载),可以启用Tomcat的压缩功能,减少数据传输量,从而提高响应速度。
5. 避免频繁GC:可以通过调整JVM的垃圾回收策略来减少频繁的GC操作,从而提高Tomcat的性能。
例如:将JVM的垃圾回收算法修改为G1。
6. 启用HTTP/2:Tomcat 9及以上版本支持使用HTTP/2协议来提高网络传输效率。
可以通过修改server.xml文件中的Connector 配置来启用HTTP/2。
7. 使用静态资源缓存:对于一些静态资源(如图片、JS、CSS 等),可以启用Tomcat的缓存功能,减少频繁的网络请求,从而提高响应速度。
8. 减少Session使用:Session的使用会占用服务器的资源,导致Tomcat的性能下降。
可以减少Session的使用,或者使用分布式Session来减轻服务器的压力。
9. 使用反向代理:将Tomcat作为反向代理服务器,可以将一些静态资源直接转发到其他服务器上,减少Tomcat的负载,提高性能。
10. 使用CDN加速:使用CDN可以将一些静态资源缓存到CDN 节点上,从而减少服务器的负载,提高Tomcat的性能。
Tomcat的优化1、内存使用配置Tomcat是依赖于JVM的,所以Tomcat的使用内存配置实质上是JVM的内存配置在/bin目录下的catalina.bat可以直接通过Tomcat设置JVM内存参数,windows下打开catalina.bat文件,在大概中间的位置,找到set "JAVA_OPTS=%JAVA_OPT% -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true"通过内存设置充分利用服务器内存-server:模式启动应用慢,但是极大程度提高运行性能-Xms2048m -Xmx2048m:设置的是堆内存java8开始,PermSize被MetaspaceSize代替,MetaspaceSize共享heap,不会再有ng.OutOfMemoryError:PermGen space,可以不设置Headless=true:适用于Linux系统,与图形操作有关,如生成验证码含义是当前的是无显示器的服务器,应用中如果获取系统显示有关的参数会抛出异常,windows系统可不用设置可通过jmap -heap process_id查看设置是否成功2、最大连接数配置(并发能力)在/conf/server.xml里进行配置在<Connector>属性中将protocol属性改为"org.apache.coyote.http11.Http11NioProtocol",NIO模型的效率更高加入maxThreads="500" //当前可以同时处理的最大用户访问数minSpareThreads="100" //最小空闲线程连接数,用于优化线程池maxSpareThreads="200"acceptCount="200" //当所有的线程以分配,仍然允许连接进来,但是出于等待状态的用户数。
tomcat常用的调优参数调优Tomcat 的性能可以通过调整一些参数来提升其运行效率和吞吐量。
以下是一些常用的Tomcat 调优参数:1. 内存设置:- `-Xms`:设置JVM 初始堆内存大小。
- `-Xmx`:设置JVM 最大堆内存大小。
-`-XX:MaxPermSize`(适用于Java 7 之前的版本):设置JVM 持久代(PermGen)的最大大小。
2. 线程池设置:- `maxThreads`:在`<Connector>` 元素中设置最大线程数。
- `acceptCount`:在`<Connector>` 元素中设置等待队列的最大大小。
3. 垃圾回收(GC)设置:- `-XX:+UseConcMarkSweepGC`:使用并发标记清除(CMS)垃圾收集器。
- `-XX:+CMSParallelRemarkEnabled`:启用CMS 垃圾收集器的并行标记阶段。
- `-XX:+UseParNewGC`:使用ParNew 垃圾收集器与CMS 进行协作。
4. 连接器设置:- `connectionTimeout`:在`<Connector>` 元素中设置连接超时时间。
- `keepAliveTimeout`:在`<Connector>` 元素中设置Keep-Alive 连接的超时时间。
5. 静态资源缓存:- `<Context>` 元素中的`cachingAllowed` 和`cacheMaxSize`:启用静态资源缓存,并设置最大缓存大小。
6. 请求处理:-`<Connector>` 元素中的`maxKeepAliveRequests`:设置每个Keep-Alive 连接允许的最大请求数量。
以上只是一些常见的调优参数示例,具体的参数设置和效果可能取决于你的应用程序和环境。
建议在调优前备份配置文件,并根据具体的需求和实际情况进行调整。
tomcat性能优化参数线上环境使⽤默认tomcat配置⽂件,性能很⼀般,为了满⾜⼤量⽤户的访问,需要对tomcat进⾏参数性能优化,具体优化的地⽅如下:Linux内核的优化服务器资源JVM 配置的优化Tomcat参数优化Tomcat配置连接器配置负载集群优化这⾥着重讲解tomcat参数的优化:server.xml⽂件,关闭DNS查询、配置最⼤并发等参数。
maxThreads:tomcat起动的最⼤线程数,即同时处理的任务个数,默认值为200acceptCount:当tomcat起动的线程数达到最⼤时,接受排队的请求个数,默认值为100当然这些值都不是越⼤越好,需要根据实际情况来设定。
可以基于测试的基础上来不断的调优分析。
1,vim /usr/local/tomcat/conf/server.xml 优化http 8080访问端⼝段加⼊以下优化,再把默认的删掉真实企业也是⼀下的参数不变<Connector port="8080"protocol="org.apache.coyote.http11.Http11NioProtocol"connectionTimeout="20000"redirectPort="8443"maxThreads="5000"minSpareThreads="20"acceptCount="1000"disableUploadTimeout="true"enableLookups="false"URIEncoding="UTF-8" />2,Catalina.sh JVM 参数优化,java系统内存优化,根据⾃⼰虚拟机得内存来优化⼀下XmsXmx Xmn的参数这⾥配置的内存不要太⼤⼀般位置系统内存的3/1 真实企业系统内存最低要留2个G 其中Xmn为Xmx内存的4/1如果不配置优化jvm tomcat默认是502参数添加位置如下:其中参数⼀般有开发⼈员来配置算出最优值添加如下内容:vim /usr/local/tomcat/bin/ catalina.shCATALINA_OPTS="$CATALINA_OPTS –Xms1024M –Xmx1024M –Xmn512M -XX:SurvivorRatio=4 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=82 -DLOCALE=UTF-16LE -DRAMDISK=/ -DUSE_RAM_DISK=ture -DRAM_DISK=true3,优化server.conf配置⽂件<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" //最⼤并发数,默认设置 200,⼀般建议在 500 ~ 800,根据硬件设施和业务来判断minSpareThreads="100" //Tomcat 初始化时创建的线程数,默认设置 25prestartminSpareThreads = "true"//在 Tomcat 初始化的时候就初始化 minSpareThreads 的参数值,如果不等于 true,minSpareThreads 的值就⽆效maxQueueSize = "100"//最⼤的等待队列数,超过则拒绝请求 /><Connector executor="tomcatThreadPool" port="8080"protocol="org.apache.coyote.http11.Http11Nio2Protocol" //Tomcat 8 设置 nio2 更好,Tomcat 6 、7设置nio更好:org.apache.coyote.http11.Http11NioProtocolconnectionTimeout="20000"minSpareThreads="100" maxSpareThreads="1000"最⼤处理连接数线程minProcessors="100“同时处理请求的最⼩数maxProcessors=“1000”同时处理请求的最⼤数maxConnections="1000" redirectPort="8443"enableLookups="false" //禁⽤DNS查询 acceptCount="100" //指定当所有可以使⽤的处理请求的线程数都被使⽤时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认设置 100maxPostSize="10485760" //以 FORM URL 参数⽅式的 POST 提交⽅式,限制提交最⼤的⼤⼩,默认是2097152(2兆),它使⽤的单位是字节。