java设置jvm参数,我趟过的那些坑

来源:互联网 发布:java输出平行四边形 编辑:程序博客网 时间:2024/06/05 14:43

最近 读到一篇文章,介绍 后端服务压测的  https://mp.weixin.qq.com/s/XW9geHZ9odHdI7srDiKBIg

里面提到 gclog,刚好前端时间公司的app 总是出现out of memory 的错误,就想看看 gc日志,自己打印个了解下。这是前提。

目标:打印gc 日志(网上的都不靠谱··还有谁说google靠谱的··我昨晚整了三个小时)

好了··首先,平台有windows 和 linux,配置方式也有很多种

1、windows 下 平时开发 用 的是eclipse,在eclipse 中,可以配置tomcat,也可以直接配置jdk

配置jdk:


配置tomcat:


配置后,启动tomcat ,日志里能看到加载了配置


在日志中能看到,其实 在jdk中与 tomcat 中 配置是一样的,如果两个都配置了,就先加载 jdk的,然后是tomcat的配置。例如:jdk 里面日志是gc.log,tomcat 是gc1.log,那么

先加载jdk,Command line argument: -Xloggc:C:\11\gclog\gc.log,然后加载tomcat Command line argument: -Xloggc:C:\11\gclog\gc1.log,那么很明显,同样的参数被覆盖了,最后输出gc日志就是gc1.log

区别是 配置jdk针对所有 tomcat,配置tomcat 呢 就只针对这一个tomcat。


2、如果不在eclipse配置,就想在tomcat 里配置,用 start.bat 启动项目,那么就像网上说的,在catalina.bat 里面配置,坑来了!

配置方法网上说法不一,有的带引号,有的不带,也没说明tomcat版本等信息··总之是模模糊糊。配置了也不管用,浪费了我四个小时啊!!

经过我最后实践总结:

确实是配置 catalina.bat,但配置方法要参照 人家里面的写法,例如:

tomcat 7:

打开 catalina.bat,搜索 JAVA_OPTS,找到


196 行 是人家的本来的配置,那当然,照着 它干就行了呗··

tomcat 8:


tomcat 8 也一样

重要说明:有时候你发现 启动后 参数在启动日志里有,但是就是不生成gc.log ,那么··先检查配置的log 输出 路径,至少要有这个文件夹才行,比如

Command line argument: -Xloggc:C:\11\gclog\gc1.log  ,就先把 C:\11\gclog  这个文件夹建好,文件会自动创建,但文件夹不会·······,还没有的话 可能还没有gc过··访问下tomcat页面试试。

3、linux 里面

linux 里面 也是照着人家原来的配置就行了,但我最开始也是怎么弄都不行,最后重启下··解决了。




tomcat 启动关闭时 会 清空重写log文件,那么 linux 里可以加上

$$ 
来分开,它代表 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。windwos 上不晓得怎么搞··

其他就··没啥了

还有·· 也可以设置全局变量,类似eclipse下 设置jdk,windwos下可以 增加 环境变量,linux 下 修改  /etc/profile 。(没试过)


原创粉丝点击