本文共 5097 字,大约阅读时间需要 16 分钟。
在本地先解压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的列表,默认以逗号分隔。
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:PermSize:JVM初始分配的非堆内存
-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 详细日志信息至指定文件
转载地址:http://sbten.baihongyu.com/