JVM参数
配置
服务器:4C8G
jdk版本:jdk1.8.0_361
JVM参数,用于配置Java应用的内存和垃圾回收行为
JAVA_OPTS=" -server \
-Xms4g -Xmx4g \
-Xss256k \
-Xmn1g \
-XX:+UseG1GC \
-XX:ParallelGCThreads=4 \
-XX:ConcGCThreads=2 \
-XX:MaxGCPauseMillis=100 \
-XX:MetaspaceSize=256m \
-XX:MaxMetaspaceSize=512m \
-XX:+PrintGCDetails \
-XX:+PrintGCTimeStamps \
-XX:+PrintGCDateStamps \
-XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=5 \
-XX:GCLogFileSize=20M \
-Xloggc:/data/logs/gc-%t.log \
-XX:HeapDumpPath=/data/dump \
-XX:+UseStringDeduplication \
-XX:+HeapDumpOnOutOfMemoryError "
参数说明
# -server:启用服务器模式的JVM,这种模式下JVM会尽量提高性能,而不是启动速度。
# -Xms4g:设置JVM启动时的初始堆内存为4GB。
# -Xmx4g:设置JVM最大可用堆内存为4GB。这有助于避免JVM在运行时动态扩展堆内存,减少停顿。
# -Xss256k:设置每个线程的栈大小为256KB。
# -Xmn1g:设置年轻代的堆内存为1GB。
# -XX:+UseG1GC:启用G1垃圾收集器,适合大堆内存和多核处理器的场景。
# -XX:ParallelGCThreads=4:设置并行垃圾回收的线程数为4,一般建议与CPU核心数相匹配。
# -XX:ConcGCThreads=2:设置并发标记的线程数为2,通常设置为并行垃圾回收线程数的一半。
# -XX:MaxGCPauseMillis=100:设置最大GC停顿时间为100毫秒,G1 GC会尽力实现这个目标,默认200毫秒。
# -XX:MetaspaceSize=256m:设置元空间的初始大小为256MB。
# -XX:MaxMetaspaceSize=512m:设置元空间的最大大小为512MB,以防止元空间无限增长。
# -XX:+PrintGCDetails:打印详细的GC日志。
# -XX:+PrintGCTimeStamps:打印GC的时间戳(以JVM启动为起点的相对时间)。
# -XX:+PrintGCDateStamps:打印GC的时间戳(以日期的形式)。
# -XX:+UseGCLogFileRotation:启用GC日志文件轮转。
# -XX:NumberOfGCLogFiles=5:设置最多保留的GC日志文件数量为5。
# -XX:GCLogFileSize=20M:设置每个GC日志文件的最大大小为20MB。
# -Xloggc:/data/logs/gc-%t.log:设置GC日志的输出文件路径,并使用时间戳来命名日志文件。
# -XX:HeapDumpPath=/data/dump:设置堆内存转储的路径。
# -XX:+UseStringDeduplication:开启字符串去重功能,有助于减少堆内存的占用。
# -XX:+HeapDumpOnOutOfMemoryError:当发生内存溢出错误时,自动生成堆内存转储文件。