Java 启动参数

这篇文章主要讲解 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

解释一下上述参数意思:

  • -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