字段说明
-Xms1024m -Xmx1024m -Xmn256m -XX:SurvivorRatio=4 -XX:NewRatio=3 -XX:+PrintGCDetails -XX:+PrintCommandLineFlags -XX:UseParNewGC【完整字段】
-Xms1024m -Xmx1024m -Xmn256m -XX:+PrintGCDetails -XX:+PrintCommandLineFlags【常用字段】
-Xms1024m 初始值 1G
-Xmx1024m 最大值 1G
-Xmn256m 最小值 256M
-XX:SurvivorRatio=4 新生代 设置 eden区 1:4 (S0区+S1区) 比例
-XX:NewRatio=3 老年代 设置 eden区 3:1 老年代区
-XX:+PrintGCDetails GC执行一次 打印一次日志
-XX:+PrintCommandLineFlags 打印更详细的GC日志
-XX:UseParNewGC 对eden区使用 并行回收机制
jvm 调优
free -g 以g类型 显示内存情况
top 任务管理器
ps -ef|grep -c xxx查询xxx总进程数
jstat -gc pid pid垃圾回收情况
jstat -gc pid i 以i毫秒查询pic的gc回收情况
jstat -gc pid i j 以i毫秒查询pic的gc回收情况查询j次
LINUX环境下
与Spring Boot项目同路径下新建一同名配置文件。
例如:当前项目为demo.jar,那么新建一文件demo.conf,内容如下:
#jvm运行参数
JAVA_OPTS="-server -Xms512M -Xmx512M -Xmn256M -XX:+PrintGCDetails -XX:+PrintCommandLineFlags"#项目运行参数
RUN_ARGS="--server.port=8081 --logging.level=INFO --spring.thymeleaf.cache=true --logging.file=/var/log/demo.log"
总体来说使用频率较高的application可以把内存适当设置大一点;使用频率为一般的可以设置低一点,比方521M;网关方面的线程池主要安装CPU的核心来设置。