jvm的一些参数

jvm生产应该配置哪些内容
1、堆内存大小
2、gc日志
3、发生oom的时候dump heap
4、使用什么垃圾回收器
5、回收策略
以下为一个常用配置示例,具体根据应用需求使用不同的垃圾回收器以及回收策略。

-Xms2g -Xmx2g 堆内存初始大小和最大值设置成一样,防止扩容
-Xloggc:./gc-%t.log
-XX:+PrintGCDetails 输出gc详细信息
-XX:+PrintTenuringDistribution 打印对象年龄分布
-XX:+PrintGCDateStamps 输出GC的时间戳
-XX:+HeapDumpOnOutOfMemoryError oom的时候dump heap文件
-XX:HeapDumpPath=heapdump.hprof dump的heap文件位置
-XX:ErrorFile=hs_err_pid_%p.log
-XX:MaxMetaspaceSize=200m metaspace最大空间
# -XX:+UseGCLogFileRotation :打开gc日志循环
# -XX:NumberOfGCLogFiles=20 设置gc日志文件数量
# -XX:GCLogFileSize=500m gc日志最大大小
-XX:NewSize=300m 设置年轻代初始大小
-XX:MaxNewSize=500m 年轻代最大大小
-XX:+UseConcMarkSweepGC 并发标记清除(CMS)收集器。
-XX:CMSMaxAbortablePrecleanTime=5000 设置cms preclean这一步的超时时间为5000ms,
-XX:CMSClassUnloadingEnabled cms垃圾回收对永久带的class unloading也生效
-XX:CMSInitiatingOccupancyFraction=80 占比达到80%的时候触发垃圾回收机制
-XX:+UseCMSInitiatingOccupancyOnly 关闭动态检查机制,如果不关闭,cms默认会根据历史记录预测老年代需要多久回收一次内存,cms根据自己的预测执行
AlwaysPreTouch 提前分配内存,大内存应用时很有用。

猜你喜欢

转载自blog.csdn.net/a807719447/article/details/114938162