一、参数
1、环境配置
cpu核数 | 物理内存 | 操作系统 | 位数 | JDK版本 |
---|---|---|---|---|
4 | 8G | Linux | 64位 | JDK8 |
2、配置功能
- JVM日志统一输出路径:/home/user/data/log
- crash日志路径:/home/user/data/log/hs_err_pid%p.log
- GC日志路径:/home/user/data/log/gc.log
- OOM Dump路径:/home/user/data/log
- 跟踪类加载
- 跟踪GC日志
- 打印命令行参数
- 打印YGC各个年龄段的对象分布
- FullGC前后跟踪类视图
- 在GC前后打印GC日志
- 打印应用暂停的时间
- 打印进程并发执行问题
- OOM Dump内存
3、参数说明
配置参数 | 说明 |
---|---|
-Xmx2048M | 设置JVM最大堆内存为2048M。 |
-Xms2048M | 设置JVM初始堆内存为2048m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 |
-Xmn768M | 设置年轻代大小为768M。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小 持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8 |
-XX:MaxMetaspaceSize=512M | 设置元数据空间最大内存为512M |
-XX:MetaspaceSize=512M | 设置元数据库空间大小为512M |
-XX:+UseG1GC | 使用G1垃圾收集器 |
-XX:MaxGCPauseMillis=100 | 最大GC暂停时间 |
-XX:+ParallelRefProcEnabled | 开启并行处理 |
-XX:ErrorFile=/home/user/data/log/hs_err_pid%p.log | 错误日志文件 |
-Xloggc:/home/user/data/log/gc.log | gc日志路径,-Xloggc的VM等价参数是-XX:+PrintGC -XX:+PrintGCTimeStamps |
-XX:HeapDumpPath=/home/user/data/log | 堆异常时日志文件路径 |
-XX:+PrintGCDetails | 打印GC详情 |
-XX:+PrintGCDateStamps | 打印GC日期 |
-verbose:class | 打印类加载信息 |
-verbose:gc | gc时打印类信息 |
-XX:+HeapDumpOnOutOfMemoryError | 当抛出java.lang.OutOfMemoryError时,将堆转储到文件 |
-XX:+PrintClassHistogramBeforeFullGC | fullgc前打印类信息 |
-XX:+PrintClassHistogramAfterFullGC | fullgc后打印类信息 |
-XX:+PrintCommandLineFlags | 打印GC信息 |
-XX:+PrintGCApplicationConcurrentTime | 打印应用程序运行的时间 |
-XX:+PrintGCApplicationStoppedTime | 打印应用程序停止的时间 |
-XX:+PrintTenuringDistribution | |
-XX:+PrintHeapAtGC | 打印每个GC之前和之后的堆信息 |
二、工具
1、JDK – jvisualvm.exe
三、分析
几个在线分析平台
- gc日志分析: GCeasy.
- 线程dump分析: fastThread.
- dump文件分析: heaphero.
- dump文件分析,jvm参数查询: perfma.
版权声明:本文为qq_36703623原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。