关于tomcat的内存参数优化——如何配置catalina.sh的JAVA_OPTS?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaofuqiangmycomm/article/details/82142910

以下是物理内存为16G的建议配置:

 

export JAVA_OPTS="-server -Xms4096m -Xmx4096m -Xss256k -XX:PermSize=256m -XX:MaxPermSize=4096m -XX:NewSize=512m -XX:MaxNewSize=2048m -XX:+DisableExplicitGC -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true"

 

项目

参考值

说明

-server

Tomcat以server模式运行,将拥有更大、更高的并发处理能力,更快更强捷的JVM垃圾回收机制,可以获得更多的负载与吞吐量,生产环境必须加上。

-Xms

4096m

推荐为可用内存的1/4的80%~100%,16G内存,配置为4G

-Xmx

4096m

-Xms –Xmx 一般的要将-Xms和-Xmx选项设置为相同堆内存分配 (访问量比较大时设为一致)

-Xss

256k

指设定每个线程的堆栈大小 一般是128k或者256k(这个值注意默值512K,有时会出现这个过小,tomcat起不来情况。所有根据的项目设置,反正越小越好)

-Xmn

256m

一般来说, -Xmn128-256m就够了

-XX:PermSize

256m

非堆的初始值[物理内存的1/64]

-XX:MaxPermSize

4096m

非堆的最大值[物理内存的1/4]

-XX:NewSize

512m

 

-XX:MaxNewSize

2048m

 

-XX:+DisableExplicitGC

 

程序代码中不允许有显示的调用”System.gc()”

-XX:+AggressiveOpts

 

启用这个参数,则每当JDK版本升级时,你的JVM都会使用最新加入的优化技术(如果有的话)

-XX:+UseBiasedLocking

 

启用一个优化了的线程锁,我们知道在我们的

-XX:MaxTenuringThreshold

31

设置垃圾最大年龄

-XX:+UseConcMarkSweepGC

 

即CMS gc 我们知道频频繁的GC会造面JVM的大起大落从而影响到系统的效率,因此使用了CMS GC后可以在GC次数增多的情况下,每次GC的响应时间却很短,比如说使用了CMS GC后经过jprofiler的观察,GC被触发次数非常多,而每次GC耗时仅为几毫秒。

-XX:+CMSParallelRemarkEnabled

 

在使用UseParNewGC 的情况下, 尽量减少 mark 的时间

-XX:+UseCMSCompactAtFullCollection

 

在使用concurrent gc 的情况下, 防止 memoryfragmention, 对live object 进行整理, 使memory 碎片减少

-XX:LargePageSizeInBytes

128m

指定 Java heap的分页页面大小

-XX:+UseFastAccessorMethods

 

get,set方法转成本地代码

-XX:+UseCMSInitiatingOccupancyOnly

 

 

-Djava.awt.headless

true

 

 

 

 

猜你喜欢

转载自blog.csdn.net/zhaofuqiangmycomm/article/details/82142910