跳到主要内容

Java 启动参数详解:堆内存、G1 GC、系统属性与应用参数

· 阅读需 2 分钟
Apache王也道长
软件开发者与技术作者

这篇文章主要讲解 Java 启动参数 在linux用jmeter做压力测试的时候,发现jmeter启动参数,记录一下:

java -server -XX:+HeapDumpOnOutOfMemoryError -Xms512m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=250 -XX:G1ReservePercent=20 -Djava.security.egd=file:/dev/urandom -jar xxxx.jar

解释一下上述参数意思: Java 命令中 JVM 参数必须放在 -jar 或主类之前,应用参数放在其后。排查启动问题时应同时记录实际命令、Java 版本、环境变量和容器资源限制。

  • -server 以Server模式启动,默认启动是以Client模式启动。JVM在client模式默认-Xms是1M,-Xmx是64M;JVM在Server模式默认-Xms是128M,-Xmx是1024M。我们可以通过运行:java -version来查看jvm默认工作在什么模式。
  • -XX:+HeapDumpOnOutOfMemoryError 设置堆栈内存溢出错误打印
  • -Xms512m 初始堆大小
  • -Xmx512m 最大堆大小
  • -XX:+UseG1GC 使用G1垃圾回收器
  • -XX:MaxGCPauseMillis=250 每次年轻代垃圾回收的最长时间(最大暂停时间)
  • -XX:G1ReservePercent=20 为了降低晋升失败机率设置一个假的堆的储备空间的上限大小,默认值是10
  • -Djava.security.egd=file:/dev/urandom 非阻塞的随机数发生器,与之对应的 file:/dev/random

更多虚拟机参数请见《深入JVM虚拟机》

参考资料

https://zybuluo.com/zhanggang807/note/107634 https://zh.wikipedia.org/wiki//dev/random

本文阅读量:--

总访问量 -- · 访客数 --