JVM设置

一、参数

1、环境配置

cpu核数物理内存操作系统位数JDK版本
48GLinux64位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.loggc日志路径,-Xloggc的VM等价参数是-XX:+PrintGC -XX:+PrintGCTimeStamps
-XX:HeapDumpPath=/home/user/data/log堆异常时日志文件路径
-XX:+PrintGCDetails打印GC详情
-XX:+PrintGCDateStamps打印GC日期
-verbose:class打印类加载信息
-verbose:gcgc时打印类信息
-XX:+HeapDumpOnOutOfMemoryError当抛出java.lang.OutOfMemoryError时,将堆转储到文件
-XX:+PrintClassHistogramBeforeFullGCfullgc前打印类信息
-XX:+PrintClassHistogramAfterFullGCfullgc后打印类信息
-XX:+PrintCommandLineFlags打印GC信息
-XX:+PrintGCApplicationConcurrentTime打印应用程序运行的时间
-XX:+PrintGCApplicationStoppedTime打印应用程序停止的时间
-XX:+PrintTenuringDistribution
-XX:+PrintHeapAtGC打印每个GC之前和之后的堆信息

二、工具

1、JDK – jvisualvm.exe

jvisualvm

三、分析

几个在线分析平台


版权声明:本文为qq_36703623原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。