常用的 jvm 调优的参数都有哪些

  

 

 

堆内存设置

  1. -Xms:设置JVM堆的初始大小。
  • 例如:​​-Xms2g​​ 表示初始堆大小为2GB。
  1. -Xmx:设置JVM堆的最大大小。
  • 例如:​​-Xmx2g​​ 表示最大堆大小为2GB。
  1. -XX:NewRatio:设置年轻代和老年代的比例。
  • 例如:​​-XX:NewRatio=4​​ 表示年轻代和老年代的比例为1:4。
  1. -XX:SurvivorRatio:设置Eden区和Survivor区的比例。
  • 例如:​​-XX:SurvivorRatio=8​​ 表示Eden区和Survivor区的比例为8:2。

垃圾回收器设置

  1. -XX:+UseSerialGC:使用串行垃圾回收器。
  2. -XX:+UseParallelGC:使用并行垃圾回收器(年轻代)。
  3. -XX:+UseParallelOldGC:使用并行垃圾回收器(年轻代和老年代)。
  • 例如:​​-XX:+UseParallelOldGC​​ 表示使用ParNew + Parallel Old垃圾回收器组合。
  1. -XX:+UseConcMarkSweepGC:使用CMS垃圾回收器(年轻代使用ParNew,老年代使用CMS)。
  • 例如:​​-XX:+UseConcMarkSweepGC​​ 表示使用CMS + Serial Old垃圾回收器组合。
  1. -XX:+UseG1GC:使用G1垃圾回收器。
  • 例如:​​-XX:+UseG1GC​​ 表示使用G1垃圾回收器。

垃圾回收日志

  1. -XX:+PrintGC:开启打印GC信息。
  2. -XX:+PrintGCDetails:打印详细的GC信息。
  3. -XX:+PrintGCTimeStamps:打印GC的时间戳。
  4. -XX:+PrintGCDateStamps:打印GC的日期和时间。
  5. -Xloggc::将GC日志输出到指定文件。
  • 例如:​​-Xloggc:/path/to/gc.log​​ 表示将GC日志输出到​​/path/to/gc.log​​文件。

其他常用参数

  1. -XX:MaxPermSize:设置永久代(PermGen)的最大大小(Java 8之前)。
  • 例如:​​-XX:MaxPermSize=256m​​ 表示永久代最大大小为256MB。
  1. -XX:MaxMetaspaceSize:设置元空间(Metaspace)的最大大小(Java 8及以后)。
  • 例如:​​-XX:MaxMetaspaceSize=256m​​ 表示元空间最大大小为256MB。
  1. -XX:MaxDirectMemorySize:设置直接内存的最大大小。
  • 例如:​​-XX:MaxDirectMemorySize=256m​​ 表示直接内存最大大小为256MB。
  1. -XX:G1HeapRegionSize:设置G1垃圾回收器的区域大小。
  • 例如:​​-XX:G1HeapRegionSize=16m​​ 表示G1垃圾回收器的区域大小为16MB。
  1. -XX:InitiatingHeapOccupancyPercent:设置触发G1垃圾回收的堆占用率阈值。
  • 例如:​​-XX:InitiatingHeapOccupancyPercent=70​​ 表示当堆占用率达到70%时触发G1垃圾回收。
  1. -XX:+HeapDumpOnOutOfMemoryError:在发生OutOfMemoryError时生成堆转储文件。
  • 例如:​​-XX:+HeapDumpOnOutOfMemoryError​​ 表示在发生OutOfMemoryError时生成堆转储文件。
  1. -XX:HeapDumpPath=:指定堆转储文件的保存路径。
  • 例如:​​-XX:HeapDumpPath=/path/to/heapdump.hprof​​ 表示堆转储文件保存路径为​​/path/to/heapdump.hprof​​。

示例

java -Xms2g -Xmx2g -XX:NewRatio=4 -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:MaxMetaspaceSize=256m -XX:MaxDirectMemorySize=256m -XX:InitiatingHeapOccupancyPercent=70 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/heapdump.hprof -jar myapp.jar
posted @ 2024-11-09 11:45  CodeWhisperer001  阅读(7)  评论(0编辑  收藏  举报