tomcat配置优化

参考文献:https://www.open-open.com/lib/view/open1401931407228.html                         https://blog.csdn.net/centre10/article/details/50639693

一、linux系统在catalina.sh文件下修改

JAVA_OPTS='
-server 
-Xms4096M 
-Xmx4096M   
-Xss512k 
-XX:+AggressiveOpts 
-XX:+UseBiasedLocking  
-XX:+DisableExplicitGC 
-XX:MaxTenuringThreshold=15 
-XX:+UseConcMarkSweepGC 
-XX:+UseParNewGC  
-XX:+CMSParallelRemarkEnabled 
-XX:LargePageSizeInBytes=128m  
-XX:+UseFastAccessorMethods 
-XX:+UseCMSInitiatingOccupancyOnly 
-Djava.awt.headless=true';

-Xmx:java heap最大值,使用的最大内存
上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss:每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC :缩短minor收集的时间
-XX:+UseConcMarkSweepGC :缩短major收集的时间

二、Tomcat连接参数的优化,主要是针对吞吐量做优化:

编辑conf/server.xml文件将
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
修改成
<Connector port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="1024"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="25000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true" />


protocol:Tomcat 8 设置 nio2 更好:org.apache.coyote.http11.Http11Nio2Protocol
protocol:Tomcat 6 设置 nio 更好:org.apache.coyote.http11.Http11NioProtocol
protocol:Tomcat 8 设置 APR 性能飞快:org.apache.coyote.http11.Http11AprProtocol
maxHttpHeaderSize:http请求头信息的最大程度,超过此长度的部分不予处理。一般8K。
maxThreads:客户请求最大线程数, 
minSpareThreads:Tomcat初始化时创建的 socket 线程数 
maxSpareThreads:Tomcat连接器的最大空闲 socket 线程数
minProcessors:服务器创建时的最小处理线程数 
maxProcessors:服务器同时最大处理线程数 
enableLookups:若设为true, 则支持域名解析,可把 ip 地址解析为主机名
compression:是否启用GZIP压缩 on为启用(文本数据压缩) off为不启用, force 压缩所有数据
compressionMinSize:当超过最小数据大小才进行压缩
compressableMimeType:
compressableMimeType:配置想压缩的数据类型
connectionTimeout:Connector接受一个连接后等待的时间(milliseconds),默认值是60000 
URIEncoding:URL统一编码
acceptAccount:监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads ) 
redirectPort:在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口 
disableUploadTimeout:这个标志允许servlet容器使用一个不同的,通常长在数据上传连接超时。 如果不指定,这个属性被设置为true,表示禁用该时间超时。

 

三:个人设置

修改catalina.sh文件,在开头增加如下内容

根据本机性能设置大小
JAVA_OPTS="-server -Xms2048m -Xmx2048m -XX:MaxNewSize=512m -XX:PermSize=64M -XX:MaxPermSize=256M"

-server 启用jdk 的 server 版; 
-Xms java虚拟机初始化时的最小内存;-Xms与-Xmx设成一样的值,避免JVM因为频繁的GC导致性能大起大落 
-Xmx java虚拟机可使用的最大内存; 
-XX: PermSize 内存永久保留区域 
-XX:MaxPermSize 内存最大永久保留区域 

修改

<Connector port="8080"
  protocol="HTTP/1.1"
  maxHttpHeaderSize="8192"
  maxThreads="1000"
  minSpareThreads="100"
  maxSpareThreads="1000"
  minProcessors="100"
  maxProcessors="1000"
  enableLookups="false"
  compression="on"
  compressionMinSize="2048"
  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  connectionTimeout="20000"
  URIEncoding="utf-8"
  acceptCount="1000"
  redirectPort="8443"
  disableUploadTimeout="true"/>


maxThreads 客户请求最大线程数 
minSpareThreads Tomcat初始化时创建的 socket 线程数 
maxSpareThreads Tomcat连接器的最大空闲 socket 线程数 
enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名 
redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口 
acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads ) 
connectionTimeout 连接超时 
minProcessors 服务器创建时的最小处理线程数 
maxProcessors 服务器同时最大处理线程数 
URIEncoding URL统一编码

 

四、jar启动

/usr/bin/nohup /root/jar/jdk1.8.0_144/bin/java -jar -server  -Xms2048m -Xmx2048m -XX:MaxNewSize=512m -XX:PermSize=64M -XX:MaxPermSize=256M  -Dfastjson.parser.safeMode=true /home/test/****.jar > /root/jar/***.out 2>&1 &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值