Tomcat中常用的调优

在平时使用Apache、Nginx或者是其他的提供相关Web服务软件中都有相应的性能模块调优修改,而在Tomcat中也有相应的性能调优修改的配置,在这里就简单的说一说比较常用的几个Tomcat中的性能调优配置参数,在Tomcat中调优参数可以分为2个部分:1、在 Tomcat中的二进制文件夹bin目录下的catalina.sh或catalina.bat中添加修改配置tomcat使用运行参数;2、在Tomcat的conf文件夹中配置修改server.xml中的容器。

一、tomcat使用运行参数catalina.sh调优

修改catalina.sh脚本,添加修改一下JAVA_OPTS变量参数:

JAVA_OPTS="$JAVA_OPTS -Xms3072m -Xmx3072m -Xmn1536m-XX:PermSize=384m -XX:MaxPermSize=384m -XX:+UseConcMarkSweepGC-XX:+UseCMSCompactAtFullCollection -XX:CMSMaxAbortablePrecleanTime=500-XX:+CMSClassUnloadingEnabled -XX:+CMSClassUnloadingEnabled -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

-server:tomcat默认是以一种叫java –client的模式来运行的,server即意味着你的tomcat是以真实的production的模式在运行的性能更优
-Xms–Xmx:JVM内存设置,JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;
 空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制,建议把最大和最小设置成一样有利于JVM的垃圾回收机制
–Xmn:设置新生代,整个堆大小=新生代大小 + 年老代大小 + 持久代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8
-XX:每当JDK版本升级时,你的JVM都会使用最新加入的优化技术
-XX:PermSize:设置非堆内存初始值,默认是物理内存的1/64
-XX:MaxPermSize:设置永生代内存初始大小,即最大非堆内存的大小,默认是物理内存的1/4
-XX:+UseConcMarkSweepGC:CMS gc,这一特性只有jdk1.5即后续版本才具有的功能,它使用的是gc估算触发和heap占用触发
-XX:+UseCMSCompactAtFullCollection:在使用concurrent gc 的情况下, 防止 memoryfragmention, 对live object 进行整理, 使 memory 碎片减少
-XX:+UseParNewGC:对新生代采用多线程并行回收,这样收得快
-XX:+CMSClassUnloadingEnabled:CMS收集器默认不会对永久代进行垃圾回收
-XX:CMSMaxAbortablePrecleanTime:CMS GC需要经过较多步骤才能完成一次GC的动作,在minor GC较为频繁的情况下,很有可能造成CMS GC尚未完成,从而造成concurrent mode failure,可以通过-XX: CMSMaxAbortablePrecleanTime设置较小的值,以保证CMS GC尽快完成对象的回收,避免concurrent mode failure的现象,尤其是在JDK 5.0+、6.0+的有些版本在CMS-concurrent-abortable-preclean-start和CMS-concurrent-abortable-preclean这两步间有可能会耗费很长的时间,导致可回收的旧生代的对象很长时间后才被回收,这是Sun JDK CMS GC的一个bug

二、Tomcat的server.xml配置文件

在Tomcat中的常用配置性能调优配置如下:

   <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="15000" maxThreads="1000" minSpareThreads="100"
               maxProcessors="1200" acceptCount="1000"
               enableLookups="false" compression="on"
               redirectPort="8443" />

connectionTimeout:超时时间,单位毫秒,默认值为60000,即60秒
maxThreads:tomcat:起动的最大线程数,默认值为200
minSpareThreads:Tomcat初始化时创建的线程数。默认值4
maxProcessors:Tomcat运行时允许创建的最大线程数,默认值为75,一般根据实际生产环境修改
acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100,web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右,通常该值设置同maxThreads一样
enableLookups:是否反查域名,默认值为true。为了提高处理能力,应设置为false
compression:压缩传输,取值on/off/force,默认值off
redirectPort:SSL的重定向端口,默认8443

总之,在平时需要根据实际生产情况修改,在Tomcat合理的性能调优后,会对Tomcat的总体性能会极大的提升

时间: 2024-07-29 08:01:59

Tomcat中常用的调优的相关文章

在linux中使用sar调优系统性能

在linux中使用sar调优系统性能 关键字: sar sar默认在linux下没有安装,需要我们手工安装,一般建议源码方式安装,下载类似sysstat-6.1.3.tar.gz 然后configure make make install即可使用. sar 命令行的常用格式: sar [options] [-A] [-o file] t [n] 在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果

[转]Linux常用性能调优工具索引

From:http://www.frostsky.com/2013/03/linux-performance-analysis-tool?wpmp_switcher=desktop 前段时间看到brendangregg的 Linux Performance Analysis and Tools PPT里面提到Linux常用性能调优工具, 见下图: 其中提到了的工具,大部分在我日常工具箱里或者在实践的案例里面使用过, 都有很高的价值,这里方便大家索引下: nicstat: 参见 这里 oprofi

JVM常用的调优参数

-Xms512m -Xmx1024m -XX:MaxPermSize=1204m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled 上面是一般性调优测试,设置Java JVM整体的优化参数: set JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=1204m XX:+CMSClassUnloadingEnabled -XX:+CMSPe

(转)WebSphere 中池资源调优 - 线程池、连接池和 ORB

WebSphere 中池资源调优 - 线程池.连接池和 ORB 来自:https://www.ibm.com/developerworks/cn/websphere/library/techarticles/1106_zhuxl_websphereenhancement/1106_zhuxl_websphereenhancement.html IBM WebSphere Application Server (以下简称 WAS)能支持的应用程序越来越多,而这些应用程序有各自的独特特性.需求和服务

Tomcat性能监控与调优

tomcat远程debug Tomcat是目前被应用得最多的一款Java Web服务器,很多人都会使用Tomcat来作为项目的服务器.也经常需要在开发的时候对Tomcat进行debug.在本地对Tomcat进行debug相信很多人都会,但如果需要对远程的Tomcat进行debug,相信有部分小伙伴还是没接触过的,而本小节将简单介绍一下如何对Tomcat进行远程debug. Tomcat远程debug是基于 JDWP 协议实现的,关于 JDWP 协议,可参考以下文档: https://www.ib

Linux服务器常用性能调优工具

Linux服务器的性能往往受到CPU.内存.磁盘I/O.网络带宽等方面的影响,对于每个Linux后台服务器开发人员来说,掌握一些常用的性能调优工具是十分有必要的.下图几乎涵盖了一个系统的方方面面,图中的工具都可称得上是性能调优方面的“瑞士军刀”,短小精干.功能强大. 1.strace 在Linux中,进程不能直接访问硬件设备,当进程需要进行读取磁盘文件,接收网络数据等访问硬件设备 的操作时,必须由用户态模式切换至内核模式,通过系统调用访问硬件设备.strace可用来跟踪程序使用的底层系统调用,可

tomcat组成介绍和调优方案

1.tomcat组成介绍 1.1 目录组成介绍 1.2 启动tomcat中遇到的问题 a.启动过程中出现很多异常:因为端口被占用了 解决方式1:修改Tomcat\conf\server.xml中的默认端口 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 解决方式2:关掉占用8080

Tomcat 和 JVM 性能调优总结

Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创建的线程数的设置,当然还有其他一些性能调优的设置,下图是我根据我机子的性能设置的一些参数值,给各位详细解释一下吧: 1.URIEncoding=”UTF-8″ :设置Tomcat的字符集.这种配置我们一般是不会设置的,因为关于乱码的转换我们会在具体项目中具体处理,直接修改Tomcat的字符集未免过于

Spark中的资源调优

1.平常的资源使用情况 2.官网 3.资源参数调优 cores memory JVM 4.具体参数 可以在--conf参数中给定资源配置相关信息(配置的一般是JVM的一些垃圾回收机制) --driver-memory MEM Memory for driver (e.g. 1000M, 2G) (Default: 1024M). 给定driver运行的时候申请的内存,默认是1G --executor-memory MEM Memory per executor (e.g. 1000M, 2G)