tomcat 生产环境 jvm参数配置

仅供参考 JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=256m -XX:PermSize=512m -XX:MaxPermSize=512m"

JAVA_OPTS="-Djava.awt.headless=true #这个设置不设置都没有什么区别 -Dfile.encoding=UTF-8 # 设置字符集 -server # 设置 jvm 为服务器 模式,在win 里面默认不是 服务默认, Linux 下默认是 服务器模式 -Xms2048m -Xmx2048m # 堆初始值和堆最大值一样 此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

-Xss256k # 设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

-Xmn1000m # 设置年轻代大小。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。

-XX:+UseParNewGC # 设置年轻代为并行收集。可与CMS收集同时使用。JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值。

-XX:CMSFullGCsBeforeCompaction=5 # 由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生“碎片”,使得运行效率降低。此值设置运行多少次GC以后对内存空间进行压缩、整理。

-XX:ParallelGCThreads=4 #配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。

-XX:+UseConcMarkSweepGC # 设置年老代为并发收集

-XX:NewSize=1000m -XX:MaxNewSize=1000m # 新生 代 的初始值 和 最大值

-XX:PermSize=200m -XX:MaxPermSize=200m # 持久代 初始值 和 最大值 ,永久代存放Class、Method元信息,其大小跟项目的规模、类、方法的量有关,一般设置为128M就足够,设置原则是预留30%的空间。 "

这个设置是 网上说的 什么 响应时间 优化设置, 这样配置后,最明显的就是,发布的时候,tomcat启动快多了。 确实响应快多了。

参考: https://my.oschina.net/u/937710/blog/122392 参考: http://www.blogjava.net/midstr/archive/2008/09/21/230265.html 参考 官方的: http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

https://my.oschina.net/zhaolin/blog/744818

https://my.oschina.net/woate/blog/380104

http://www.cnblogs.com/zhangpan1244/p/6197832.html

备注: -Xmn 新生代内存大小的最大值,包括E区和两个S区的总和,使用方法如:-Xmn65535,-Xmn1024k,-Xmn512m,-Xmn1g (-Xms,-Xmx也是种写法) -Xmn只能使用在JDK1.4或之后的版本中,(之前的1.3/1.4版本中,可使用-XX:NewSize设置年轻代大小,用-XX:MaxNewSize设置年轻代最大值); 如果同时设置了-Xmn和-XX:NewSize,-XX:MaxNewSize,则谁设置在后面,谁就生效;如果同时设置了-XX:NewSize -XX:MaxNewSize与-XX:NewRatio则实际生效的值是:min(MaxNewSize,max(NewSize, heap/(NewRatio+1)))(看考:http://www.open-open.com/home/space.php?uid=71669&do=blog&id=8891) 在开发、测试环境,可以-XX:NewSize 和 -XX:MaxNewSize来设置新生代大小,但在线上生产环境,使用-Xmn一个即可(推荐),或者将-XX:NewSize 和 -XX:MaxNewSize设置为同一个值,这样能够防止在每次GC之后都要调整堆的大小(即:抖动,抖动会严重影响性能)

配置了 响应时间 的方式后,启动的时候 ,快很多了,程序反应快多了,但是 运行一段时间后, tomcat 就反应比较慢了。特别是 表格查询的时候, 因此配置 处理 能力强点的 jvm

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8   -server -Xms3800m -Xmx3800m -Xss256k -XX:+UseParallelGC -XX:+UseParallelOldGC  -XX:ParallelGCThreads=20 -XX:NewSize=2048m -XX:MaxNewSize=2048m -XX:PermSize=200m -XX:MaxPermSize=200m"

原因的 响应时间 优化的,正在找原因 ,为什么发布的时候 项目反应快,但是 之后反应慢?

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms3072m -Xmx3072m -Xss256k -XX:+UseParNewGC -XX:CMSFullGCsBeforeCompaction=5 -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC  -XX:NewSize=1300m -XX:MaxNewSize=1300m -XX:PermSize=200m -XX:MaxPermSize=200m"

转载于:https://my.oschina.net/ouminzy/blog/832880

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值