转载

JVM调优

有两种类型的 hotspot jvm ,即 “service” 和 “client" 。 jvm 可根据内存,机器情况,自动选择jvm类型。 如果想手动选择,则可通过 -service-client 参数指定jvm 类型。

  1. servcie : 服务端类型,有更多的堆内存,并行的垃圾收集器,运行时可更大程度的优化代码
  2. client : 客户端类型,相比服务端类型,有更少的堆内存
  3. 查看jvm版本以及类型
    java -version
    

jvm 参数分类

  1. 标准参数
    1. 稳定的,将来的jvm版本不会改变的参数,可通过 java 或者 java -help 命令检出的
  2. X参数
    1. 非标准化的参数,将来的jvm 版本中可能会改变的,可通过 java -X 命令检出,但并不是所有该类型都能检出
  3. XX 参数
    1. 不稳定的,甚至是在实验阶段的参数,甚至长时间段内未被列出,该类型参数都以 -XX 开头,但是随后的语法不同,取决于参数的类型。 可通过 -XX:+PrintFlagsFinal 或者 -XX:+PrintFlagsFinalInitial 输出所有XX类型参数信息(参数类型,参数名称,默认值=,被用户或者jvm赋值 :=)

    对于布尔类型的参数,我们有”+”或”-“,然后才设置JVM选项的实际名称。例如,-XX:+用于激活选项,而-XX:-用于注销选项。 -XX:+PrintCompilation :输出编译信息 -XX:+ClTime : 关闭jvm 时输出编译时效统计信息 -XX:+PrintCommandLineFlags : 输出所有被用户或者jvm 设置过的XX参数以及值 对于需要非布尔值的参数,如string或者integer,我们先写参数的名称,后面加上”=”,最后赋值。例如,  -XX:=给赋值。

jvm 调优参数

  1. Xms128m : 初始化堆内存大小为128M,不包括永久代的空间,是 -XX:InitailHeapSize=128m 的缩小
  2. Xmx2g : 最大堆内存大小 为 2G,不包括永久代的空间, 是 -XX:MaxHeapSize=2g 的缩小
  3. -XX:+HeapDumpOnOutOfMemoryError : jvm 发送内存溢出时自动生成堆内存快照
  4. -XX:HeapDumpPath= :设置堆内存快照生成的路径
  5. -XX:OnOutOfMemory="" : 可接收一串指令,当堆内存溢出时,执行指令
  6. -XX:PermSize= : 初始化永久代大小
  7. -XX:MaxPermSize= : 最大永久代大小
原文  https://juejin.im/post/5df8ab6e6fb9a016561ca955
正文到此结束
Loading...