首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

JVM内存分析系列(1)JVM常用参数

2013-12-26 
JVM内存分析系列(一)JVM常用参数-server 服务模式启动-verbose:gc 开启gc日志打印-Xms值} 最小堆-Xmx{值}

JVM内存分析系列(一)JVM常用参数
-server 服务模式启动
-verbose:gc 开启gc日志打印

-Xms值} 最小堆
-Xmx{值} 最大堆
-Xss{值} 栈容量
-Xloggc 日志文件路径,例如-Xloggc:/var/logs/gc.log
-XX:+HeapDumpOnOutOfMemoryError 参数表示当JVM发生OOM时,自动生成DUMP文件。
-XX:HeapDumpPath=${目录}参数表示生成DUMP文件的路径,也可以指定文件名称,例如:XX:HeapDumpPath=${目录}/java_heapdump.hprof。如果不指定文件名,默认为:java_<pid>_<date>_<time>_heapDump.hprof。
-XX:PermSize={值} 方法区最小内存值
-XX:MaxPermSize={值} 方法区最大内存值
-XX:+PrintGCDetails 打印GC收集详情


例子1,测试内存溢出快照
启动配置
-server -verbose:gc -Xms10m -Xmx10m -Xss128k -Xloggc:C:/tmp/gc.log -XX:PermSize=5m -XX:MaxPermSize=5m -XX:MaxDirectMemorySize=10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:/tmp

测试代码

package com.chinaso.phl;import java.util.ArrayList;import java.util.List;/** * @author piaohailin * @date 2013-12-24 */public class Server {/** * @param args * @author piaohailin * @date 2013-12-24 */public static void main(String[] args) {List<Server> list = new ArrayList<Server>();while (true) {list.add(new Server());}}}

控制台输出
java.lang.OutOfMemoryError: Java heap space
Dumping heap to C:/tmp\java_pid7248.hprof ...
Heap dump file created [15800203 bytes in 0.177 secs]
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2760)
at java.util.Arrays.copyOf(Arrays.java:2734)
at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
at java.util.ArrayList.add(ArrayList.java:351)
at com.chinaso.phl.Server.main(Server.java:29)

异常到处文件在C:/tmp/java_pid7248.hprof
使用MemoryAnalyzer-1.3.0打开文件即可进行宕机分析

查看垃圾收集文件 C:/tmp/gc.log
0.111: [GC [PSYoungGen: 2624K->368K(3008K)] 2624K->1888K(9856K), 0.0069619 secs] [Times: user=0.01 sys=0.00, real=0.02 secs]
0.129: [GC [PSYoungGen: 2992K->384K(3008K)] 4512K->3940K(9856K), 0.0061142 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
0.136: [GC [PSYoungGen: 3008K->384K(3008K)] 6564K->6576K(9856K), 0.0084894 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
0.145: [Full GC [PSYoungGen: 384K->0K(3008K)] [PSOldGen: 6192K->5416K(6848K)] 6576K->5416K(9856K) [PSPermGen: 3036K->3036K(21248K)], 0.0234317 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
0.170: [Full GC [PSYoungGen: 2624K->28K(3008K)] [PSOldGen: 5416K->6848K(6848K)] 8040K->6876K(9856K) [PSPermGen: 3036K->3036K(21248K)], 0.0270945 secs] [Times: user=0.03 sys=0.00, real=0.03 secs]
0.200: [Full GC [PSYoungGen: 2053K->2053K(3008K)] [PSOldGen: 6848K->6848K(6848K)] 8901K->8901K(9856K) [PSPermGen: 3036K->3036K(21248K)], 0.0310118 secs] [Times: user=0.03 sys=0.00, real=0.03 secs]
0.231: [Full GC [PSYoungGen: 2053K->2024K(3008K)] [PSOldGen: 6848K->6848K(6848K)] 8901K->8872K(9856K) [PSPermGen: 3036K->3028K(21248K)], 0.0428044 secs] [Times: user=0.05 sys=0.00, real=0.04 secs]
Heap
PSYoungGen      total 3008K, used 2112K [0x00000000ffcb0000, 0x0000000100000000, 0x0000000100000000)
  eden space 2624K, 80% used [0x00000000ffcb0000,0x00000000ffec02e0,0x00000000fff40000)
  from space 384K, 0% used [0x00000000fff40000,0x00000000fff40000,0x00000000fffa0000)
  to   space 384K, 0% used [0x00000000fffa0000,0x00000000fffa0000,0x0000000100000000)
PSOldGen        total 6848K, used 6848K [0x00000000ff600000, 0x00000000ffcb0000, 0x00000000ffcb0000)
  object space 6848K, 100% used [0x00000000ff600000,0x00000000ffcb0000,0x00000000ffcb0000)
PSPermGen       total 21248K, used 3038K [0x00000000fa400000, 0x00000000fb8c0000, 0x00000000ff600000)
  object space 21248K, 14% used [0x00000000fa400000,0x00000000fa6f7968,0x00000000fb8c0000)

热点排行