前言
对于 SpringBoot 项目通常会选择默认配置,显然这不是一个最优的选择,今天偶然翻到一篇关于 《SpringBoot项目优化和Jvm调优》的文章,正好也有时间,何不如尝试下,看看效果如何呢?心动就要行动!!!
如何调优
在 SpringBoot 项目中,调优主要通过设置 application.yaml 文件和设置 JVM 的参数。
在这边有一篇关于 SpringBoot 项目详细的配置文件修改文档,推荐给大家!
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html#common-application-properties
注意啦,下边我们要开始喽!!
- 设置 application.yml
# 最大连接数,设置为0为不限制;如果不设置,则默认 10000
server.tomcat.max-connections=200
# post提交数据最大大小,设置为0不限制;如果不设置,则默认 2M
server.tomcat.max-http-post-size=0
# 最大线程数,设置为0不限制;如果不设置,则默认 200
server.tomcat.max-threads=300
# 最小线程数,设置为0不限制;如果不设置,则默认 10
server.tomcat.min-spare-threads=15
如下图:
2. 设置 JVM 的参数
分为两种场景:
-
在 IDEA 中运行 SpringBoot,如下图:
将 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC 填写到 VM options 中。 -
在脚本或者命令行中运行 SpringBoot
$ java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m
-Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 - XX:+UseConcMarkSweepGC XXXXX.jar
通过下边的表格来说明各参数的含义
参数 | 含义 |
---|---|
-XX:MetaspaceSize=128m | 元空间默认大小 |
-XX:MaxMetaspaceSize=128m | 元空间最大大小 |
-Xms1024m | 堆最大大小 |
-Xmx1024m | 堆默认大小 |
-Xmn256m | 栈最大深度大小 |
-XX:SurvivorRatio=8 | 新生代分区比例 8:2 |
-XX:+UseConcMarkSweepGC | 指定使用的垃圾收集器,这里使用CMS收集器 |
-XX:+PrintGCDetails | 打印详细的GC日志 |