tomcat和jvm调优

      1. Tomcat配置

在本地先解压apache-tomcat-8.5.28.zip,用文本方式打开conf下的server.xml文件。

(图1-3-12)

找到connectior标签并将参数修改为:

<Connector port="880" protocol="HTTP/1.1"

URIEncoding="UTF-8"  

minSpareThreads="25"

maxSpareThreads="75"

enableLookups="false"

disableUploadTimeout="true"

connectionTimeout="20000"

acceptCount="2000"

maxHttpHeaderSize="65536"

maxPostSize="4194304"   

maxThreads="1000"

maxProcessors="1500"

minProcessors="5"

useURIValidationHack="false"

compression="on"

compressionMinSize="2048"

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"  redirectPort="8443"/>

(图1-3-13)

(图1-3-13)所示,修改完成后保存退出。参数说明:

URIEncoding:用于解码URL的字符编码,没有指定默认值为ISO-8859-1。

minSpareThreads:Tomcat初始化时创建的 socket 线程数。

maxSpareThreads:Tomcat连接器的最大空闲 socket 线程数。

enableLookups:若设为true, 则支持域名解析,可把 ip 地址解析为主机名。

disableUploadTimeOut:允许Servlet容器,正在执行使用一个较长的连接超时值,以使Servlet有较长的时间来完成它的执行,默认值为false。

connectionTimeout:设置连接的超时值,以毫秒为单位。

acceptCount:当所有的可能处理的线程都正在使用时,在队列中排队请求的最大数目。当队列已满,任何接收到的请求都会被拒绝,默认值为10。

maxThreads:表示最多同时处理的连接数量 。

maxProcessors:最大连接线程数,即:并发处理的最大请求数。

minProcessors:最小空闲连接线程数,用于提高系统处理性能。

useURIValidationHack:设置为false可以减少tomcat对一些url的不必要的检查从而减省开销。

compression:是否启用压缩。

compressionMinSize:压缩文件大小下限,单位字节。

compressableMimeType:MIME的列表,默认以逗号分隔。

      1. jvm性能参数优化

Windows服务器:进入apache-tomcat-8.5.28的bin文件夹编辑catalina.bat文件,在Execute The Requested Command的下一行添加参数,java1.7和1.8版本需添加不同的参数。

Jdk1.7版本

set JAVA_OPTS=-server -Xms2240m -Xmx2240m -Xmn450m -XX:PermSize=512M  -XX:MaxPermSize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseTLAB -XX:NewSize=128m -XX:MaxNewSize=128m -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=1024 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -Djava.awt.headless=true  -XX:+PrintGCDetails -Xloggc:gc.log -XX:+PrintGCTimeStamps  

Jdk1.8版本:

set JAVA_OPTS= -server -Xms3g -Xmx3g -Xmn1g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8 -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m -verbose:gc -Xloggc:ukefu_gc.log

  Linux服务器:进入apache-tomcat-8.5.28的bin文件夹编辑catalina.sh文件,在Execute The Requested Command的下一行添加参数,java1.7和1.8版本需添加不同的参数。

Jdk1.7版本

export JAVA_OPTS= -server -Xms2240m -Xmx2240m -Xmn450m -XX:PermSize=512M  -XX:MaxPermSize=512m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseTLAB -XX:NewSize=128m -XX:MaxNewSize=128m -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=1024 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -Djava.awt.headless=true  -XX:+PrintGCDetails -Xloggc:gc.log -XX:+PrintGCTimeStamps   

Jdk1.8版本:

export  JAVA_OPTS = -server -Xms3g -Xmx3g -Xmn1g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8 -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m -verbose:gc -Xloggc:ukefu_gc.log

(图1-3-14)

(图1-3-14)所示的是windows的服务器配置,2个文件修改后保存退出,然后将apache-tomcat-8.5.28重新压缩成zip。参数说明:

Java1.7版本的参数详解:

-server:启用jdk的server版本。

-Xms:虚拟机初始化时的最小堆内存。

-Xmx:虚拟机可使用的最大堆内存。

-Xmn设置年轻代大小

-XX:PermSizeJVM初始分配的非堆内存
-XX:MaxPermSize JVM最大允许分配的非堆内存,按需分配

-XX:+UseParNewGC : ParNew收集器 

-XX:+UseConcMarkSweepGC  使用CMS收集器

-XX:+UseTLAB:启用线程本地缓存区(Thread Local)

-XX:NewSize:新生代预估上限的默认值。

-XX:MaxNewSize:新生代占整个堆内存的最大值。 

-XX:MaxTenuringThreshold:设置对象在新生代中最大的存活次数,最大值15,并行回收机制默认为15,CMS默认为4。 

-XX:SurvivorRatio:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。 

-XX:+UseCMSInitiatingOccupancyOnly:使用手动定义初始化定义开始CMS收集。

-XX:CMSInitiatingOccupancyFraction: 指定老年代回收阀值, 即当老年代内存使用率达到这个值时, 会执行一次CMS回收。

-Djava.awt.headless=true :有时我们会在我们的J2EE工程中使用一些图表工具如:jfreechart,用于在web网页输出GIF/JPG等流,在winodws环境下,一般我 们的app server在输出图形时不会碰到什么问题,但是在linux/unix环境下经常会碰到一个exception导致你在winodws开发环境下图片显 示的好好可是在linux/unix下却显示不出来,因此加上这个参数以免避这样的情况出现。

-XX:+PrintGCDetails :打印GC回收的详细信息。

-Xloggc:输出GC 详细日志信息至指定文件。

-XX:+PrintGCTimeStamps:打印GC停顿耗时

Java1.8版本的参数详解:

-server:启用jdk的server版本。

-Xms:虚拟机初始化时的最小堆内存。

-Xmx:虚拟机可使用的最大堆内存。

-Xmn设置年轻代大小

-XX:MetaspaceSize指定的是元空间的初始大小

-XX:MaxMetaspaceSize设置元空间的最大值

-XX:+UseG1GC启用G1收集器

-XX:G1HeapRegionSize当使用G1收集器时,设置java堆被分割的大小。这个大小范围在1M到32M之间。

-XX:G1ReservePercent使用g1收集器时,设置保留java堆大小,防止晋升失败。范围是0到50.默认设置是10%。

-XX:InitiatingHeapOccupancyPercent设置进行垃圾回收的堆占用的百分比。

-XX:SoftRefLRUPolicyMSPerMB每兆堆空闲空间中SoftReference的存活时间

-XX:SurvivorRatio年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个

-XX:+DisableExplicitGC:这个参数作用是禁止代码中显示调用GC

-XX:+PrintGCDetails:打印gc日志的详细信息

-XX:+PrintGCDateStamps输出GC的时间戳

-XX:+PrintGCApplicationStoppedTime打印垃圾回收期间程序暂停的时间.可与上面混合使用

-XX:+PrintAdaptiveSizePolicy打印自适应收集的大小。默认关闭。-XX:UseGCLogFileRotation:打开或关闭GC日志滚动记录功能,要求必须设置 参数-Xloggc。

-XX:NumberOfGCLogFiles:设置滚动日志文件的个数

-XX:GCLogFileSize:设置滚动日志文件的大小

-verbose:gc:打印GC的简要信息。

-Xloggc输出GC 详细日志信息至指定文件

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值