JVM(Java Virtual Machine)参数的配置对于Java应用程序的性能和行为具有重要影响。以下是一些常见的JVM参数及其说明:
-
堆内存相关参数:
-Xms
: 设置JVM初始堆内存大小。-Xmx
: 设置JVM最大堆内存大小。-Xmn
: 设置新生代堆内存大小。-XX:MaxPermSize
(JDK 7及之前) 或-XX:MaxMetaspaceSize
(JDK 8及之后): 设置永久代或元空间的最大大小。
java -Xms256m -Xmx512m -Xmn128m -XX:MaxPermSize=128m -jar YourApp.jar
-
垃圾回收相关参数:
-XX:+UseSerialGC
: 启用串行垃圾回收器。-XX:+UseParallelGC
: 启用并行垃圾回收器。-XX:+UseConcMarkSweepGC
: 启用CMS(Concurrent Mark-Sweep)垃圾回收器。-XX:+UseG1GC
: 启用G1(Garbage First)垃圾回收器。
java -XX:+UseG1GC -jar YourApp.jar
-
GC日志相关参数:
-Xloggc:<filename>
: 将GC日志输出到指定文件。-XX:+PrintGCDetails
: 打印详细的GC日志。-XX:+PrintGCDateStamps
: 打印GC的时间戳。
java -Xloggc:/path/to/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -jar YourApp.jar
-
性能调优参数:
-XX:MaxGCPauseMillis
: 设置期望的最大GC停顿时间。-XX:ParallelGCThreads
: 设置并行垃圾回收器的线程数。-XX:SurvivorRatio
: 设置新生代中Eden区与Survivor区的比例。
java -XX:MaxGCPauseMillis=500 -XX:ParallelGCThreads=4 -XX:SurvivorRatio=8 -jar YourApp.jar
-
内存溢出相关参数:
-XX:OnOutOfMemoryError
: 在发生内存溢出时执行指定的命令。
java -XX:OnOutOfMemoryError="kill -9 %p" -jar YourApp.jar
-
元空间相关参数(JDK 8及之后):
-XX:MaxMetaspaceSize
: 设置元空间的最大大小。-XX:MetaspaceSize
: 设置元空间的初始大小。
java -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=128m -jar YourApp.jar
这些参数只是其中一部分,实际使用时需要根据应用程序的性质和需求进行合理的调优。最佳的配置取决于应用程序的特征、硬件配置和负载。建议在配置参数时仔细阅读JVM文档,以更好地理解每个参数的作用和影响。