JVM常用参数

java 复制代码
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/my.hprof

如果出现OOM情况,在/home生成my.hprof文件

  1. 注意要保证文件不存在(文件名不重复),否则会生成失败
  2. 性能损耗可以忽略不计,在导出dump时会消耗一定性能,影响时间较短。而且都出现OOM了,这个文件还是很重要的
  3. dump文件的大小一般大于Xmx,如果Xmx很大不建议开启(比如在项目中Flink使用了60个G这种,用dump了也加载不出来)
java 复制代码
-Xms4096M

初始堆内存大小 Java启动时就会申请这么大的堆内存,如果内存不够则无法启动

java 复制代码
-Xmx4096M

最大堆内存大小 Java堆内存可以扩大到多少

Xms和Xmx要不要相同

  • 相同的情况下,JVM内存保持稳定,不会动态调整堆内存大小,没有堆内存调整的性能开销,稳定性较好
  • 不同的情况下,JVM动态调整堆内存大小会带来性能开销,在内存资源较紧张的情况下,可以先使用小的初始内存

目前个人感觉,服务需要稳定运行,内存资源不应该是问题,就算多花点钱扩大内存,在业务运行稳定目前是不值一提的,稳定的JVM比不可测的JVM更为重要

java 复制代码
-XX:+UseG1GC

使用G1垃圾回收器
CMS和G1怎么选择

据查询,在jdk8中,内存8G是一个分界线,低于8G时CMS性能较好,高于8G时G1性能较好,不绝对。

相关推荐
多米Domi01120 分钟前
0x3f 第49天 面向实习的八股背诵第六天 过了一遍JVM的知识点,看了相关视频讲解JVM内存,垃圾清理,买了plus,稍微看了点确定一下方向
jvm·数据结构·python·算法·leetcode
饺子大魔王的男人21 分钟前
Remote JVM Debug+cpolar 让 Java 远程调试超丝滑
java·开发语言·jvm
乡野码圣10 小时前
【RK3588 Android12】RCU机制
java·jvm·数据库
m0_5613596711 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
2401_8384725112 小时前
使用Python进行图像识别:CNN卷积神经网络实战
jvm·数据库·python
zhihuaba12 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
u01092727112 小时前
Python Web爬虫入门:使用Requests和BeautifulSoup
jvm·数据库·python
91刘仁德13 小时前
c++类和对象(下)
c语言·jvm·c++·经验分享·笔记·算法
爱学习的阿磊14 小时前
Python上下文管理器(with语句)的原理与实践
jvm·数据库·python
m0_7369191014 小时前
Python面向对象编程(OOP)终极指南
jvm·数据库·python