假如生产环境中服务器配置是8C16G内存,部署一个springboot写的项目,uv100万左右/day,给出一份环境配置的参数值,基于openjdk11 并配置oom时产生heap文件
-server
-Xms 8G
-Xmx 8G
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:G1HeapRegionSize=32M
-XX:ActiveProcessorCount=8
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=headdump.hprof
-XX:+PrintCommandLineFlags
-Xlog:gc*=info:file=xx_gc.log:uctime,level,tags:filecount=50,filesize=100M
-server:指定JVM使用server模式运行,优化性能
-Xms8G,-Xmx8G 指定堆内存最大最小值都为8G,不要特意指定-Xmn,G1内存结构决定了。
-XX:+UseG1GC 指定使用G1垃圾收集器
-XX:MaxGcPauseMillis=200 垃圾回收暂停时间为最大200毫秒
-XX:G1HeapRegionSize=32M,指定G1GC堆区域大小为32M
-XX:ActiveProcessorCount=8,指定并行垃圾回收器的线程数为8,jdk9之后ParallelGCThreads被替换为-XX:ActiveProcessorCount参数,可自动计算垃圾回收器线程数
-XX:+HeapDumpOnOutOfMemoryError 指定在发生内存溢出时生成堆转储文件
-xx:HeapDumpPath=heapdump.hprof 指定堆转储文件的存储路径
-Xlog:gc... 指定GC日志的输出格式和位置,记录GC相关信息
-XX:+PrintCommandLineFlags 打印jvm启动时的命令行参数