侧边栏壁纸
  • 累计撰写 2,058 篇文章
  • 累计创建 73 个标签
  • 累计收到 20 条评论

目 录CONTENT

文章目录

JVM基本参数--Jvm调优()

大猿本猿
2022-04-07 / 432 阅读 / 0 字

通用配置

  1. -Xms20m:初始大小内存,默认为物理内存1/64 —— 等价于-XX:InitialHeapSize
  2. -Xmx20m:最大分配内存,默认为物理内存1/4 —— 等价于-XX:MaxHeap
  3. -Xss128K:设置单个线程的大小,一般默认为512K~102 —— 等价于-XX:ThreadStackSizeSize
  4. -Xmn10m:设置新生代内存,剩余的为老年代的
  5. -XX:PretenureSizeThreshold=1m:大对象直接分配在老年代,这个参数只对 Serial 和ParNew两个收集器有效。
  6. -XX:MaxTenuringThreshold=15:动态年龄超过15次,进入老年代。等于 0 的话,就直接入老年代。
  7. -XX:G1HeapRegionSize:G1收集器每个Region的大小
  8. -XX:SurvivorRatio=8:设置一个eden和一个suvivor的比值
  9. -XX:+PrintTenuringDistribution:JVM 在每次新生代GC时,打印出幸存区中对象的年龄分布
  10. -XX:+HeapDumpOnOutOfMemoryError:打印 OOM 日志
  11. -XX:HeapDumpPath=路径:OOM 日志输出位置(可通过JVisualVM 工具进行分析)

有些资料说,Xms、Xmx 设置的是 JVM 内存大小,是不对的,JVM 除了留给开发人员使用的堆内存之外还有非堆内存。

有三种方式可以划分年轻代大小:-Xmn 方式、-XX:NewSize + -XX:MaxNewSize 方式、-XX:NewRatio 方式。三种都可以,优先级从高到低依次是 -XX:NewSize + -XX:MaxNewSize 方式、-Xmn 方式、-XX:NewRatio 方式,也就是说配置了前面优先级高的后面的优先级低的就被覆盖掉了。