设为首页 收藏本站
查看: 623|回复: 0

[经验分享] tomcat_garbage collection_log(垃圾回收日志)参数设置

[复制链接]

尚未签到

发表于 2017-2-4 11:45:58 | 显示全部楼层 |阅读模式
@echo off
if "%OS%" == "Windows_NT" setlocal
set CATALINA_HOME=D:\Tomcat5_websearch
set HEAP=-Xms4096m -Xmx4096m
set PERMANENT_G=-XX:PermSize=128m -XX:MaxPermSize=128m
set YOUNG_G=-Xmn600m -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5
set CMS_GC=-XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+CMSParallelRemarkEnabled  -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=15
set NEW_GC=-XX:+UseParNewGC -XX:ParallelGCThreads=4
set RMIGC=-Dsun.rmi.dgc.server.gcInterval=86400000 -Dsun.rmi.dgc.client.gcInterval=86400000
set DUMP=-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%CATALINA_HOME%/logs/dump_tomcat.hprof
set GCLOG=-Xloggc:%CATALINA_HOME%/logs/gc_tomcat.log -XX:+PrintGCTimeStamps
set JAVA_OPTS=-server %HEAP% %PERMANENT_G% %YOUNG_G% %CMS_GC% %NEW_GC% %RMIGC% %DUMP% %GCLOG%
  这是tomcat下面catalina.bat
  (1) Tomcat中的设置
   
  检查<Tomcat安装目录>/bin 下的 catalina.bat(Windows平台)或catalina.sh(Linux平台)中的 JAVA_OPTS参数是否设置了 –Dfile.encoding=GBK,若没有则需要在该文件中加上一行。
   
  Windows平台:set JAVA_OPTS=%JAVA_OPTS% –Dfile.encoding=GBK
   
  Linux平台: JAVA_OPTS="$JAVA_OPTS –Dfile.encoding=GBK"
   
  “添加:-Djava.net.preferIPv4Stack=true
   
  tomcat 的bin 目录下
  linux 系统则修改catalina.sh文件
  window 则修改 catalina.bat文件 ”
   
  (2) Weblogic中的设置
   
  应用服务器为Weblogic,要在 Weblogic目录 /user_projects/domains/mydomain下面的 startWebLogic.sh 文件中,JAVA_HOME = “ ” 下面一行增加:
   
  JAVA_OPTIONS= "${JAVA_OPTIONS} -Dfile.encoding=GBK"
  然后重启Weblogic即可。
参数设置放在上面这个位置,这是我们系统的配置
//jvm最大可用内存

set HEAP=-Xms4096m -Xmx4096m


//这里是对老年代内存的配置

set PERMANENT_G=-XX:PermSize=128m -XX:MaxPermSize=128m


 
实现指定获取IPv4的地址-Djava.net.preferIPv4Stack=true
 Xms 是指设定程序启动时占用内存大小,表现JVM Heap(堆内存)最小尺寸
 Xmx 是指设定程序运行期间最大可占用的内存大小,表现JVM Heap(堆内存)最大容许的尺寸
 Xss 是指设定每个线程的堆栈大小
 以上三个参数的设置都是默认以Byte 为单位的,也可以在数字后面添加 [k/K]或者[m/M]来表示KB 或者MB
-XX:PermSize=64MB设置最大非堆内存大小。(默认是物理内存的1/64)
-XX:MaxPermSize=256MB设置最大非堆内存大小。(默认是物理内存的1/4)
MaxPermSize缺省值和-server -client选项相干。
-server选项下默认MaxPermSize为64m
-client选项下默认MaxPermSize为32m
堆溢出 OutOfMemoryError:Heap space。
需要调整 –Xms和-Xmx的大小。
永久保存区域溢出   OutOfMemoryError:PermGen space。
需要调整permsize和MaxPermSize的大小。
 
//这里是对新生代内存的配置
   -Xmn的heap大小 
   -XX:SurvivorRatio年轻代中Eden区与两个Survivor区的比值,8表示Eden:Survivor=8:2,,一个Survivor区占整个年轻代的1/10
   -XX:MaxTenuringThreshold 设置垃圾最大年龄  如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,

set YOUNG_G=-Xmn600m -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5



// 这里是对老生代采用并发标记收集器进行垃圾回收的配置   CMS_GC:ConcurrentMarkSweep 并发标记扫描收集器
   +UseConcMarkSweepGC 对老生代采用并发标记交换算法进行GC 
   +DisableExplicitGC 禁止调用System.gc();但jvm的gc仍然有效
   +CMSParallelRemarkEnabled 在使用 UseParNewGC 的情况下 , 尽量减少 mark 的时间 
   +UseCMSCompactAtFullCollection   打开对年老代的压缩。可能会影响性能,但是可以消除碎片
   CMSFullGCsBeforeCompaction=15 这里设置15次Full GC后,对年老代进行压缩
    CMS:ConcurrentMarkSweep 并发标记扫描


set CMS_GC=-XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=15



//  这里是对新生代采用并行收集器进行垃圾回收的配置    parallel collector 并行收集器 
    +UseParNewGC 指定新生代使用parallel collector
    ParallelGCThreads 线程数


set NEW_GC=-XX:+UseParNewGC -XX:ParallelGCThreads=4



//  这里是对RMI客户端和服务端的垃圾回收的间隔时间设置

Dsun.rmi.dgc.server.gcInterval 设置rmi的gc间隔时间,默认是每分钟进行一次gc,86400000是24小时gc一次

set RMIGC=-Dsun.rmi.dgc.server.gcInterval=86400000 -Dsun.rmi.dgc.client.gcInterval=86400000



// 这里是对当首次遭遇OOM时导出此时堆中相关信息的配置
    HeapDumpOnOutOfMemoryError 当首次遭遇OOM时导出此时堆中相关信息 
    HeapDumpPath 指定导出堆信息时的路径或文件名


set DUMP=-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%CATALINA_HOME%/logs/dump_tomcat.hprof


 

// 这里是对tomcat垃圾回收日志的配置


set GCLOG=-Xloggc:%CATALINA_HOME%/logs/gc_tomcat.log -XX:+PrintGCTimeStamps


 
//把以上配置的参数全部设置进去

set JAVA_OPTS=-server %HEAP% %PERMANENT_G% %YOUNG_G% %CMS_GC% %NEW_GC% %RMIGC% %DUMP% %GCLOG%

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-337386-1-1.html 上篇帖子: Tomcat catalina.out 日志过大时打开问题 下篇帖子: 如何在Tomcat里发布自己的程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表