联系
Knight's Tale » 技术

java 内存一例浅析

2015-07-29 10:52

执行 ./jstat -gc 131

image

执行 ./jstat -gcutil 131

image

可以分析出:

S0: 0M / 1M
S1: 500K / 1M
E:  250M / 500M
O:  486M / 1323M
P:  91M  / 262M
YGCT:   481/5.8 
FUC:    2/2.76
GCT:    8.599

查看下java进程

work       131 28.8  1.5 2365700 2006180 ?   SNl  Jul28 321:39 /home/work/app/.jdk/bin/java -Djava.util.logging.config.file=/home/
work/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -verbose:gc -Xloggc:/home/w
ork/logs/gc.log -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Djava.awt.headless=true -XX:MaxNewSize=500M -XX:PermSize=64m -XX:MaxPe
rmSize=256M -XX:SurvivorRatio=4 -Xss256K -Xmx1792m -Xms1792m -XX:PermSize=256m -XX:MaxPermSize=256m -Duser.timezone=GMT+08 -javaag
ent:/home/work/.jvmagent/jvmagent.jar -Dport.http.nonssl=8080 -Djava.endorsed.dirs=/home/work/endorsed -classpath /home/work/bin/b
ootstrap.jar -Dcatalina.base=/home/work -Dcatalina.home=/home/work -Djava.io.tmpdir=/home/work/temp org.apache.catalina.startup.Bo
otstrap start

查看到

-Xmx1792m -Xms1792m

Xmx 和 Xms = O+E ,和上面使用 jstat 查出来的数据是一致的。

如果发现机器上内存量一直很高,可以考虑 将 Xmx 和 Xms 增大。

还有一种简单做法,比如baidu的做法是 将 Xmx 设定 为机器内存 -256M

这样的话,只要你的机器内存变大,那么java进程可以使用的内存也会变大。

参考: http://blog.csdn.net/lei_1000/article/details/5034687

本文链接地址:java 内存一例浅析