linux java调优

在这里插入图片描述

Tomcat 运行过程遇到Caused by: java.lang.OutOfMemoryError: PermGen space或者java.lang.OutOfMemoryError: Java heap space错误。

  1. 异常原因
    PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。这块内存主要是被JVM存放Class和Meta信息的。Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同。GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar,其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

Java heap space:JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

  1. 解决办法

修改TOMCAT_HOME/bin/catalina.sh文件:

OS specific support. $var must be set to either true or false.

JAVA_OPTS="-server -Xms2048m -Xmx2048m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true"

cygwin=false

darwin=false

加入以上红色JAVA_OPTS行记录后重启tomcat服务,其中JAVA_OPTS各参数的具体数值大小须根据实际服务器物理内存大小进行分配。

  1. 监控JVM

4.1 查看jdk安装路径
可选择的命令:

(1) # echo $JAVA_HOME

(2) # whereis java

(3) # which java (java执行路径)

(4) # echo $PATH

本例:

4.2 查看java进程

采用jdk提供的jps(JavaVirtual Machine Process Status Tool)小工具,可查看当前Java进程。

本例:进入/usr/java/jdk1.7.0_79目录后,执行bin/jps -v:

可看到Bootstrap 前面的数字10142即为Java进程号,同时可看到JAVA_OPTS参数生效情况。

4.3 查看JVM的GC情况

使用jstat工具查看,语法为:

jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]参数解释:

*Options -选项,我们一般使用-gcutil查看GC情况

vmid -VM的进程号,即当前运行的java进程号

interval -间隔时间,单位为秒或毫秒

本例:同样在/usr/java/jdk1.7.0_79目录中查看java进程号10142且每隔3秒输出1次,执行# bin/jstat -gcutil 10142 3000 :

参数说明如下:

S0 -Heap上的Survivor space 0区已使用空间的百分比

S1 -Heap上的Survivor space 1区已使用空间的百分比

E -Heap上Eden space区已使用空间的百分比

O -Heap上的Old space区已使用空间的百分比,达到100%,就是内存溢出了

P -Perm space区已使用空间的百分比,达到100%,就是内存溢出了

YGC -从应用程序启动到采样时发生Yang GC 的次数

YGCT -从应用程序启动到采样时Yang GC所用的时间【单位秒】

FGC -从应用程序启动到采样时Full GC的次数

FGCT -从应用程序启动到采样时Full GC所用的时间

GCT -从应用程序启动到采样时用于垃圾回收的总时间【单位秒】

通过监控O、P数值情况,再次调整JAVA_OPTS相关参数大小达到优化目的。

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
ZUIfzp38UqqNALIIz1T/KA==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值