tomcat的JVM优化

在catalina.sh启动脚本中增加如下配置:

JAVA_OPTS="-server -Xms1024m -Xmx3G -XX:+UseAdaptiveSizePolicy -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=20 -XX:+HeapDumpOnOutOfMemoryError -XX:NewRatio=3 -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC -Xloggc:/usr/local/tomcat1/gc.log -XX:HeapDumpPath=/usr/local/tomcat1/heap.dump"


然后后续可以在注意观察一下。

具体参数的意思:
-server 启动jvm的server模式,该模式启动的时候较慢,但在正式环境中对jvm性能有一定优化作用
-Xms1024m 初始化内存大小
-Xmx3G 最大内存大小
-XX:+UseAdaptiveSizePolicy 使用并行垃圾处理器的时候,优化内存中年轻代和年老代的比例
-XX:+UseParallelGC 年轻代使用并行垃圾收集器
-XX:+UseParallelOldGC 年老代使用并行垃圾收集器
-XX:ParallelGCThreads=20 并行垃圾收集器的线程数量
-XX:+HeapDumpOnOutOfMemoryError 在程序出发OutOfMemoryError的时候,导出堆信息
-XX:NewRatio=3 设置年轻代在整个堆内存的大小(例如目前jvm内存为1G,则年轻大大小为1G * (1 / (1 + 3)) = 250M,年老代为1G - 250M = 700M),因为本web项目中,有一些数据是初始化就加载到内存中,因此可以略微设置较大的年老代内存大小,以减少Full GC。
-XX:PermSize=128m 设置永久代内存大小,该大小会影响到类的加载,因为spring、hibernate等大量使用代理模式,会动态创建很多新的类,因此需要设置该,如果不设置可能导致程序 PermGen Space Error
-XX:MaxPermSize=256m 设置永久代的最大 大小
-XX:+PrintGCDetails 记录GC详细信息
-XX:+PrintGCTimeStamps 记录GC发生的时间,已程序启动多少秒的形式记录
-XX:+PrintGCApplicationConcurrentTime GC时应用并发执行的时间
-XX:+PrintGCApplicationStoppedTime GC时,应用程序停止的时间
-XX:+PrintHeapAtGC GC前后,输出各个内存区域大小
-Xloggc:/usr/local/tomcat1/gc.log 记录GC日志,设置日志路径
-XX:HeapDumpPath=/usr/local/tomcat1/heap.dump 在程序出发OutOfMemoryError的时候,导出堆信息的路径
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值