第一次简单的JVM学习
此次调试源于某一个Java进程貌似有内存泄露, 用top命令查看内存发现:
启动时占用600M内存, 一天过去后涨到1.3G, 之后每天多涨200M, 到了几周后就到了峰值-Xmx4096m, 于是开始担心会不会这个应用跑着跑着outofmenory了
这个Java进程的启动参数为:
java -server -Xms4096m -Xmx4096m -Xmn1280m
-Dcom.sun.management.jmxremote.port=9910 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
-Dserverbindport=8910
-Denv_type=fat
-Djava.io.tmpdir=/home/op1/DAS/das_hotel/tmp
-Duser.dir=/home/op1/DAS/das_hotel
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump_das_hotel_10.2.6.15.hprof
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC
-XX:CMSInitiatingOccupancyFraction=60
-XX:CMSTriggerRatio=70 -XX:CMSTriggerPermRatio=70
-Xloggc:/home/op1/DAS/das_hotel/logs/das_hotel_gc.log
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-classpath /home/op1/DAS/das_hotel/conf:/home/op1/DAS/das_hotel/lib/*: com.xxx.search.das.hotel.HotelDAS -t 2014-09-26-09-40-00
然后使用jstat -gc 查看, 发现FGC也就是FullGC次数是86,F