最近一年,线上WIKI Confluence  经常有事没事的就跑死了,于是14年初的时候写了个重启脚本,但是问题得不到解决,原因是重启脚本监控的是 http 200 ,但是 java 跑满 内存溢出后,实际监控的首页打不开,但是 curl 监控是正常的,由于本人比较懒,一拖拖了一年,这两天,经理急了,嘿嘿,赶紧弄啊~! 于是问题得到了解决,原因很简单,如图:

Confluence tomcat JVM 堆内存溢出 跑死问题解决_JVMConfluence 在默认安装后,内存只有512M ,这么点个内存,随便几个人上去同时在线,内存得不到释放,随便搞搞就死了,这玩意说实话用着也挺气人的


由于这个系统是.bin格式自动安装的,所以找了半天tomcat配置文件,在里面添加了一段配置,修改了下JVM内存大小,这里注意,此段配置需要在cygwin=false前面



-Xmx    Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定; 

-Xms    Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值; 

-Xmn    Java Heap Young区大小,不熟悉最好保留默认值; 

-Xss    每个线程的Stack大小,不熟悉最好保留默认值; 



Confluence tomcat JVM 堆内存溢出 跑死问题解决_Confluence _02

重启系统,问题解决了。



ps:以上问题,线下测试机测试时没有问题,但是线上就出现参数修改后不变的问题,原因是,参数被前一个运维定义死了,sh -x 调试发现了,修改后就好了,但是解决Confluence 内存值就是上面的这个流程,我的生产环境这个比较特殊.